home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 098 / rbs5bbas.arc / CONFIG.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-08-28  |  52.8 KB  |  1,359 lines

  1. 10000  REM $linesize: 132 $title: 'CONFIG.BAS V1.8, Copyright 1983,1984,1985 by D. Thomas Mack'; ' WARNING !!! DO NOT CHANGE, BYPASS OR REMOVE LINE 10000-10230
  2. 10010  ' CONFIG.BAS (RBBS-PC ver. CPC12.5B)
  3. 10030  'by D. Thomas Mack
  4. 10040  '   The Second Ring
  5. 10050  '   10210 Oxfordshire Road
  6. 10060  '   Great Falls, Virginia 22066
  7. 10070  '
  8. 10080  ' *******************************NOTICE*************************************
  9. 10090  ' *  A limited license is granted to all users of this program and it's   *
  10. 10100  ' *  companion program, RBBS-PC (ver. CPC12.5), to make copies of this    *
  11. 10110  ' *  program and distribute the copies to other users, on the following   *
  12. 10120  ' *  conditions:                                                          *
  13. 10130  ' *    1.   The notices contained in lines 25 through 44 of the programs  *
  14. 10140  ' *         are not altered, bypassed, or removed.                        *
  15. 10150  ' *    2.   The program is not to be disrtibuted to others in modified    *
  16. 10160  ' *         form (i.e. the line numbers must remain the same).            *
  17. 10170  ' *    3.   No fee is to be charged (or any other consideration received) *
  18. 10180  ' *         for coping or distributing these programs without an express  *
  19. 10190  ' *         written agreement with D. Thomas Mack, The Second Ring, 10210 *
  20. 10200  ' *         Oxfordshire Road, Great falls, Virginia 22006                 *
  21. 10210  ' *                                                                       *
  22. 10220  ' *   Copyright (c) 1983, 1984, 1985 D. Thomas Mack, The Second Ring      *
  23. 10230  ' *************************************************************************
  24. 10240  DEFINT A-Z:CLEAR:DIM A$(10),SA(7),MD(21),FS(10),UA(16),HA$(9)
  25. 10250  WIDTH 80:CLS:I!=FRE(C$):KEY OFF:LOCATE ,,0
  26. 10260  PRINT TAB(60)"tm":PRINT TAB(16) STRING$(15,205)" U S E R W A R E "STRING$(15,205)
  27. 10270  PRINT:PRINT TAB(17)"Capital PC User Group User-Supported Software":PRINT:PRINT TAB(7) CHR$(214)STRING$(62,196)CHR$(183)
  28. 10280  FOR I=1 TO 12:READ A$:PRINT TAB(7) CHR$(186);A$;SPACE$(62-LEN(A$));CHR$(186):NEXT
  29. 10290  PRINT TAB(7) CHR$(211)STRING$(62,196)CHR$(189):PRINT TAB(21)"Copyright (c) 1983, 1984, 1985 Tom Mack, 10210 Oxfordshire Rd., Great Falls, VA
  30. 10300  DATA"    If you are using RBBS-PC CPC12.5 and find it valuable, I
  31. 10310  DATA"    suggest you consider a contribution to
  32. 10320  DATA"
  33. 10330  DATA"                 Capital PC Software Exchange
  34. 10340  DATA"                     Post Office Box 6128
  35. 10350  DATA"                Silver Spring, Maryland  20906
  36. 10360  DATA"
  37. 10370  DATA"    You are free to copy and share RBBS-PC CPC12.5 with
  38. 10380  DATA"    others on these three conditions:
  39. 10390  DATA"      1.  This program is not distributed in modified form.
  40. 10400  DATA"      2.  No fee or consideration is charged.
  41. 10410  DATA"      3.  This notice is not bypassed or removed.
  42. 10420  DEF FNTI!=CSNG(FIX((VAL(MID$(TIME$,1,2))*60*60)+(VAL(MID$(TIME$,4,2))*60)+(VAL(MID$(TIME$,7,2))*1))) ' CPC10
  43. 10422  DEF FNHSH(X$)=((ASC(X$)*100 + ASC(MID$(X$,LEN(X$)/2,1))*10 + ASC(RIGHT$(X$,1))) MOD UB) + 1
  44. 10424  DEF FNHSH2(X$)=(ASC(MID$(X$,2,1))*10 + 7) MOD UB
  45. 10430  CA$="RBBS-PC.DEF":M$="Z":MAXD=10
  46. 10440  FGR=7
  47. 10450  BGR=0
  48. 10460  BDR=0
  49. 10470  IA!=FNTI!+5
  50. 10480  IF FNTI!<IA! THEN LOCATE 22,15:GOTO 10480
  51. 10490  LOCATE 22,15:PRINT SPC(64):LOCATE 22,15:PRINT"Will you be running multiple copies of RBBS-PC (YES or NO)?";
  52. 10500  GOSUB 22380:ON AB GOTO 10530,10510,10490,10490
  53. 10510  GOSUB 22480
  54. 10520  ' *************************************************************************
  55. 10530  ON ERROR GOTO 60010:DD$="C":GOSUB 10540:SG$=SG1$:FILE$=CA$:GOSUB 30000:IF OK THEN GOTO 10535
  56. 10531  LOCATE 24,5:PRINT SPC(74);:LOCATE 24,5:PRINT CA$+" file not found.  A new one will be created.";:IA!=FNTI!+5:GOSUB 60440
  57. 10532  LOCATE 24,5:PRINT SPC(74);:LOCATE 24,5:PRINT "Default drive on which RBBS is to reside (A-"+M$+"): ";:LINE INPUT;HJ$:GOSUB 50654:IF LEN(HJ$)<>1 OR HJ$<"A" OR HJ$>M$ THEN 10532
  58. 10533  DD$=HJ$:GOSUB 10540:GOTO 11870
  59. 10535  OPEN "I",#1,CA$:GOTO 11590
  60. 10540  D$=DD$+":":FA=0:IB=0:TA=NOT FA:MB=8:MC=1:EA$="IBM's DOS":RA$="INTERNAL":UB=16:ME$=D$+"MESSAGES":MF$=D$+"MESSAGES.BAK":CB$=D$+"CALLERS":CC$=D$+"COMMENTS":UC$=D$+"USERS":C$="":HA$="HELP0":HA$(1)="HELP01":HA$(2)="HELP02":HA$(3)="HELP03"
  61. 10720  HA$(4)="HELP04":HA$(5)="HELP05":HA$(6)="HELP06":HA$(7)="HELP07":HA$(8)="HELP08":HA$(9)="HELP09":BA$="BULLET":BB$="BULLET":WA$=D$+"WELCOME":NA$=D$+"NEWUSER":MG$=D$+"MENU1":MH$=D$+"MENU2":MI$=D$+"MENU3":MJ$=D$+"MENU4":MK$=D$+"MENU5"
  62. 10880  CD$=D$+"CONFENCE":BC$=D$+"TRASHCAN":VA=0:OA=TA:UD=FA:CK=FA:PL=23:LW=19:WB=FA:DIR$="DIR":TB$=DD$:BD$=TB$:HB$=TB$:DA=2:NB$="TOM":NC$="MACK":PA$="RBBS-PC":FF$="RBBS-PC":PB$="CPC12":XPR=0:VER$="(Ver 1.8)":CE=0:ML=0:VA=ML:DB=5:SB=10
  63. 11110  CF=0:KA$=PA$:ND=5:SF=10:FOR I=1 TO 7:SA(I)=SF:NEXT:MM=5:FOR I=1 TO 21:MD(I)=MM:NEXT:FC=5:FOR I=1 TO 10:FS(I)=FC:NEXT:UE=5:FOR I=1 TO 16:UA(I)=UE:NEXT:PD$=TB$+":"+"PASSWRDS":CG=3:CH=5:WC=SB:MN=5:FD$=DD$+DD$:MO$=DD$:UF$="99":RB$=D$+"RBBS.BAT":PC=SB
  64. 11204  FB$=TB$+":"+"FILESEC":SC=10:SD=10:SE=0:SY$="IBMPC":TY=180:UPX!=0:B$="300"
  65. 11270  CI$=D$+"RCTTY.BAT":OB$="NO":OC$="NO":BE=0:PRT=TA:TC!=72:MP=5:LA=1:AC=800:AD=2200:CL=FA:OD=TA:M13$="COM1":RC=TA:BF=TA:MW$=". ":M26=FA:M28=FA:M29=FA:BG=6:CM=0:SM1$="<ESC>  sysop sign-on maintenance/page.":SM2$=" <F1>  return to DOS.
  66. 11490  SM3$=" <F2>  return to BASIC.":SM4$=" <F3>  toggle Line Printer.":SM5$=" <F4>  toggle SYSOP Page Bell.":SM6$=" <F5>  force on-line state.":SM7$=" <F6>  toggle SYSOP available.":SM8$=" <F7>  SYSOP gets system after this caller.
  67. 11550  SM9$=" <F8>  grant temporary SYSOP privileges.":SH$=" <F9>  toggle SNOOP.":SI$="<F10>  force CHAT - ESC to end.":SG1$="ATM0Q1S2=255S10=30E0S0=1Q0X1":RETURN
  68. 11580  ' RBBS-PC Configuration Program for Compilable RBBS-PC
  69. 11590  LOCATE 22,15:PRINT SPC(64);
  70. 11600  INPUT #1,FD$,PA$,PB$,NB$,NC$,CE,AC,AD,TC!,MP,LA,UF$,XPR,BG,BE,PRT,CL,MG$,MH$,MI$,MJ$,MK$,CD$,VA,OA,UD,PL,LW,WB,MO$
  71. 11610  GOSUB 22340
  72. 11620  INPUT #1,ME$,MF$,CB$,CC$,UC$,WA$,NA$,DIR$,M13$,OD,SG$,TB$,DA,FGR,BGR,BDR,RB$,CI$:IF LEN(SG$)<>28 THEN SG$=SG1$
  73. 11630  GOSUB 22340
  74. 11640  INPUT #1,OB$,OC$,HA$(1),HA$(2),HA$(3),HA$(4),HA$(5),HA$(6),HA$(7),HA$(8),HA$(9),BA$,BB$,BD$,RC,BF,SD,MC,SE,CF,UB,MQ!,BC$:GOSUB 21895
  75. 11650  GOSUB 22340
  76. 11660  INPUT #1,ML,DB,SB,FB$,SC,KA$,ND,SA(1),SA(2),SA(3),SA(4),SA(5),SA(6),SA(7),PD$,CG,CH,WC,MN,M26
  77. 11670  GOSUB 22340
  78. 11680  INPUT #1,MD(1),MD(2),MD(3),MD(4),MD(5),MD(6),MD(7),MD(8),MD(9),MD(10),MD(11),MD(12),MD(13),MD(14),MD(15),MD(16),MD(17),MD(18),MD(19),MD(20),MD(21),SY$,TY
  79. 11690  GOSUB 22340
  80. 11700  INPUT #1,FS(1),FS(2),FS(3),FS(4),FS(5),FS(6),FS(7),FS(8),FS(9),FS(10),UA(1),UA(2),UA(3),UA(4),UA(5),UA(6),UA(7),UA(8),UA(9),UA(10),UA(11),UA(12),UA(13),UA(14),UA(15),UA(16),UPX!,CM,CK,FF$,M28,M29,MW$,B$
  81. 11705  INPUT #1,SM1$,SM2$,SM3$,SM4$,SM5$,SM6$,SM7$,SM8$,SM9$,SH$,SI$,PC
  82. 11710  GOSUB 22340
  83. 11720  BA$=RIGHT$(BA$,(LEN(BA$)-2))
  84. 11730  BB$=RIGHT$(BB$,(LEN(BB$)-2))
  85. 11740  IF CF=0 THEN RA$="INTERNAL" ELSE RA$="SYSTEM
  86. 11750  HB$=LEFT$(HA$(1),1)
  87. 11760  HA$(1)=RIGHT$(HA$(1),(LEN(HA$(1))-2))
  88. 11770  HA$=LEFT$(HA$(1),LEN(HA$(1))-1)
  89. 11780  SF=SA(1):FOR I=2 TO 7:IF SA(I)>SF THEN GOTO 11790 ELSE SF=SA(I)
  90. 11790  NEXT
  91. 11800  MM=MD(1):FOR I=2 TO 21:IF MD(I)>MM THEN GOTO 11810 ELSE MM=MD(I)
  92. 11810  NEXT
  93. 11820  FC=FS(1):FOR I=2 TO 10:IF FS(I)>FC THEN GOTO 11830 ELSE FC=FS(I)
  94. 11830  NEXT
  95. 11840  UE=UA(1):FOR I=2 TO 16:IF UA(I)>UE THEN GOTO 11850 ELSE UE=UA(I)
  96. 11850  NEXT
  97. 11860  CLOSE #1:GOSUB 22340
  98. 11862  GOSUB 50480:GOSUB 22340
  99. 11864  GOSUB 50530:GOSUB 22340
  100. 11870  IF XPR=0 THEN M5$="NOVICE
  101. 11880  IF XPR=-1 THEN M5$="EXPERT
  102. 11890  M6$=RIGHT$(FD$,1)
  103. 11900  M7$=LEFT$(FD$,(LEN(FD$)-1))
  104. 11910  IF BE=0 THEN M10$="OFF
  105. 11920  IF BE=-1 THEN M10$="ON
  106. 11950  IF CL=TA THEN M12$="COMPILED
  107. 11960  IF CL=FA THEN M12$="BASICA
  108. 11970  IF OD=TA THEN M15$="YES
  109. 11980  IF OD=FA THEN M15$="NO
  110. 11990  IF VAL(MID$(SG$,4,1))=0 THEN M14$="OFF
  111. 12000  IF VAL(MID$(SG$,4,1))=1 THEN M14$="ON
  112. 12010  IF RC=TA THEN M16$="YES
  113. 12020  IF RC=FA THEN M16$="NO
  114. 12030  IF BF=TA THEN M17$="YES
  115. 12040  IF BF=FA THEN M17$="NO
  116. 12050  IF OA=FA THEN M18$="NO
  117. 12060  IF OA=TA THEN M18$="YES
  118. 12070  IF UD=TA THEN M19$="YES
  119. 12080  IF UD=FA THEN M19$="NO
  120. 12085  IF CK=TA THEN M20$="YES
  121. 12086  IF CK=FA THEN M20$="NO
  122. 12090  IF WB=TA THEN M21$="YES
  123. 12100  IF WB=FA THEN M21$="NO
  124. 12110  IF PA$="" THEN MN1$="(Disabled)" ELSE MN1$=PA$
  125. 12120  IF PB$="" THEN MN2$="(Disabled)" ELSE MN2$=PB$
  126. 12122  IF MW$=". "+CHR$(7) THEN M11$="YES
  127. 12124  IF MW$=". " THEN M11$="NO
  128. 12130  IF M26=TA THEN M26$="YES
  129. 12140  IF M26=FA THEN M26$="NO
  130. 12145  IF M28=TA THEN M28$="YES
  131. 12146  IF M28=FA THEN M28$="NO
  132. 12147  IF M29=TA THEN M29$="YES
  133. 12148  IF M29=FA THEN M29$="NO
  134. 12150  Y$="
  135. 12151  F=0
  136. 12155  MAINMSG$=ME$
  137. 12156  MAINUSR$=UC$
  138. 12160  KEY OFF:GOSUB 22340
  139. 12161  IO=0            ' set initial message number to 0
  140. 12162  ID=1            ' USERS file    -- first record number
  141. 12163  IE=ID           ' USERS file    -- next available record number
  142. 12164  IG=UB           ' USERS file    -- last record number
  143. 12165  IJ=1+MC+1       ' MESSAGES file -- first record of messages
  144. 12166  II=IJ           ' MESSAGES file -- next available record number
  145. 12167  IH=5*MP+1+MC    ' MESSAGES file -- last record number
  146. 12168  IM=MP           ' MESSAGES file -- maximum number of messages
  147. 12170  FILE$=ME$:MF=0:UF=0
  148. 12171  GOSUB 30000     ' If MESSAGES exist, get checkpoint record
  149. 12172  IF OK THEN MF=OK:GOSUB 30040:UB=IG:MQ!=IH:MP=INT((IH-IJ)/5)
  150. 12173  IF MP>250 THEN MP=VAL("250"):IM=MP:GOSUB 30450
  151. 12174  FILE$=UC$       ' Check for USERS file
  152. 12175  GOSUB 30000     ' If USERS file exist, set values
  153. 12176  IF OK THEN UF=OK:FILE$=UC$:GOSUB 30180:UB=IG
  154. 12177  IF NOT MF AND F<>2 THEN IE=UG+1      ' if no MESSAGES file, assume USERS full
  155. 12178  IF MF THEN GOSUB 30450      ' if MESSAGES file, re-write checkpoint
  156. 12179  IF NOT MF THEN GOSUB 30230  ' write new MESSAGES file if none
  157. 12180  IF NOT UF AND MF THEN UB=IG:GOSUB 50000  ' write new USERS file if none
  158. 12181  IF NOT UF AND NOT MF THEN GOSUB 50000  ' write new USERS file if none
  159. 12182  FOR I=1 TO 10:KEY I,"":NEXT
  160. 12183  B1=UB:GOSUB 22140
  161. 12190  COLOR FGR,BGR,BDR:CLS:I!=FRE(C$)
  162. 12200  COLOR 0,7,0:LOCATE 4,10:PRINT"RBBS-PC CPC12.5B CONFIGURATION PROGRAM "+VER$:COLOR FGR,BGR,BDR
  163. 12210  LOCATE 1,1,0:PRINT"Copyright (c) 1983,84,85 Tom Mack, 10210 Oxfordshire Rd., Great Falls, VA 22066";
  164. 12215  IF F THEN GOSUB 24970
  165. 12220  LOCATE  7,2:PRINT"  F1            Global RBBS-PC Parameters (part 1)
  166. 12230  LOCATE  9,2:PRINT"  F2            Global RBBS-PC Parameters (part 2)
  167. 12240  LOCATE 11,2:PRINT"  F3            Parameters for static RBBS-PC Files
  168. 12250  LOCATE 13,2:PRINT"  F4            Parameters for dynamic RBBS-PC's Files
  169. 12260  LOCATE 15,2:PRINT"  F5            Parameters for RBBS-PC's 'Doors'
  170. 12270  LOCATE 17,2:PRINT"  F6            Parameters for RBBS-PC's Security
  171. 12280  LOCATE 19,2:PRINT"  F7            Parameters for multiple RBBS-PC's
  172. 12290  LOCATE 21,2:PRINT"  F8            RBBS-PC utilities
  173. 12300  LOCATE 24,5:PRINT"Press END to terminate or select function key to change parameters shown.";
  174. 12310  GOSUB 22160
  175. 12320  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,12350,12360,12350
  176. 12330  GOTO 12310
  177. 12350  GOSUB 60380:GOTO 12310
  178. 12360  CN=1
  179. 12370  GOSUB 24800
  180. 12380  LOCATE  3,10:PRINT" 1. SYSOP's First Name --------------------------- "+NB$
  181. 12390  LOCATE  4,10:PRINT" 2. SYSOP's Last Name ---------------------------- "+NC$
  182. 12400  LOCATE  5,10:PRINT" 3. Password #1 for SYSOP to sign on remotely ---- "+MN1$
  183. 12410  LOCATE  6,10:PRINT" 4. Password #2 for SYSOP to sign on remotely----- "+MN2$
  184. 12420  LOCATE  7,10:PRINT" 5. Password for SYSOP to sign on locally -------- "+KA$
  185. 12430  LOCATE  8,10:PRINT" 6. SYSOP's default sign-on mode ----------------- "+M5$
  186. 12440  LOCATE  9,10:PRINT" 7. SYSOP's office hours ------------------------ "STR$(AC);" to "STR$(AD)
  187. 12445  LOCATE 10,10:PRINT" 8. Page SYSOP using printer's bell -------------- "+M11$
  188. 12450  LOCATE 11,10:PRINT" 9. Numbers of rings to wait before answering ----"STR$(CE)
  189. 12460  LOCATE 12,10:PRINT"10. Drive available for Uploading ---------------- "+M6$
  190. 12470  LOCATE 13,10:PRINT"11. Name of directory for uploading -------------- "+UF$
  191. 12480  LOCATE 14,10:PRINT"12. Drive(s) available for Downloading ----------- "+M7$
  192. 12490  LOCATE 15,10:PRINT"13. Prompt bell default is ----------------------- "+M10$
  193. 12500  LOCATE 16,10:PRINT"14. Maximum time per session (in minutes) --------"STR$(TC!)
  194. 12510  LOCATE 17,10:PRINT"15. Limit each user to"+STR$(TC!)+" minutes/day? "+STRING$((14-LEN(STR$(TC!))),45)+" "+M26$
  195. 12530  LOCATE 18,10:PRINT"16. # Months of inactivty before user deleted ----"STR$(LA)
  196. 12560  LOCATE 19,10:PRINT"17. Communications port to be used by RBBS-PC ---- "+M13$
  197. 12570  LOCATE 20,10:PRINT"18. Version of DOS that RBBS-PC will run under ---"STR$(DA)
  198. 12575  LOCATE 21,10:PRINT"19. Name of RBBS-PC shown initially is ----------- "+FF$
  199. 12580  GOSUB 24890
  200. 12590  GOSUB 22160
  201. 12600  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,12190,14200,12620
  202. 12610  GOTO 12590
  203. 12620  GOSUB 50340:IF VAL(HJ$)<1 OR VAL(HJ$)>19 THEN 12580 ELSE ON VAL(HJ$) GOTO 12840,12910,12980,13060,12670,13140,13210,13342,13350,13400,12730,13470,13750,13840,16650,13940,14120,15240,13131
  204. 12670  LOCATE 24,5:PRINT SPC(74):LOCATE 24,5:PRINT"Enter password (8 characters or less)";:GOSUB 14990: IF LEN(HJ$)>8 OR INSTR(HJ$,"0!") THEN HJ$="5":GOTO 12670 ELSE KA$=HJ$:GOTO 12360
  205. 12730  GOSUB 13590: UF$=HJ$:GOTO 12360
  206. 12840  LOCATE 24,5:PRINT"What is the SYSOP's FIRST name? ";
  207. 12850  LINE INPUT;HJ$
  208. 12860  IF HJ$="" THEN GOTO 12840
  209. 12870  IF LEN(HJ$)<3 GOTO 12840
  210. 12880  GOSUB 50654
  211. 12890  NB$=HJ$
  212. 12900  GOTO 12360
  213. 12910  LOCATE 24,5:PRINT"What is the SYSOP's LAST name? ";
  214. 12920  LINE INPUT;HJ$
  215. 12930  IF HJ$="" THEN GOTO 12910
  216. 12940  IF LEN(HJ$)<3 GOTO 12910
  217. 12950  GOSUB 50654
  218. 12960  NC$=HJ$
  219. 12970  GOTO 12360
  220. 12980  LOCATE 24,5:PRINT"What is the SYSOP's Password #1? ";
  221. 12990  LINE INPUT;HJ$
  222. 13020  GOSUB 50654
  223. 13030  PA$=HJ$
  224. 13040  IF PA$="" THEN MN1$="(Disabled)" ELSE MN1$=PA$
  225. 13050  GOTO 12360
  226. 13060  LOCATE 24,5:PRINT"What is the SYSOP's Password #2? ";
  227. 13070  LINE INPUT;HJ$
  228. 13100  GOSUB 50654
  229. 13110  PB$=HJ$
  230. 13120  IF PB$="" THEN MN2$="(Disabled)" ELSE MN2$=PB$
  231. 13130  GOTO 12360
  232. 13131  LOCATE 24,5:PRINT"Enter name for this RBBS-PC (19 characters or less) ";
  233. 13132  LINE INPUT;HJ$
  234. 13133  IF LEN(HJ$)>19 GOTO 13131
  235. 13134  GOSUB 50654
  236. 13135  FF$=HJ$
  237. 13136  GOTO 12360
  238. 13140  LOCATE 24,5:PRINT"SYSOP's default sign-on mode (EXPERT/NOVICE)? ";
  239. 13150  LINE INPUT;HJ$
  240. 13160  IF LEN(HJ$)=6 OR LEN(HJ$)=1 THEN GOTO 13170 ELSE GOTO 13140
  241. 13170  GOSUB 50654
  242. 13180  IF HJ$="E" OR HJ$="EXPERT" THEN M5$="EXPERT":GOTO 12360
  243. 13190  IF HJ$="N" OR HJ$="NOVICE" THEN M5$="NOVICE":GOTO 12360
  244. 13200  GOTO 13140
  245. 13210  LOCATE 24,5:PRINT"What is the earliest SYSOP wants to be paged? -- HHMM ";
  246. 13220  LINE INPUT;HJ$
  247. 13230  IF LEN(HJ$)<>4 GOTO 13210
  248. 13240  IF FIX(VAL(MID$(HJ$,1,2)))<0 OR FIX(VAL(MID$(HJ$,1,2)))>24 OR FIX(VAL(MID$(HJ$,3,2)))<0 OR FIX(VAL(MID$(HJ$,3,2)))>59 THEN GOTO 13210
  249. 13250  AC=VAL(HJ$)
  250. 13260  IF AC<0 OR AC>2400 THEN GOTO 13210
  251. 13270  LOCATE 25,5:PRINT"What is the latest SYSOP wants to be paged? ---- HHMM ";
  252. 13280  LINE INPUT;HJ$
  253. 13290  IF LEN(HJ$)<>4 GOTO 13270
  254. 13300  IF FIX(VAL(MID$(HJ$,1,2)))<0 OR FIX(VAL(MID$(HJ$,1,2)))>24 OR FIX(VAL(MID$(HJ$,3,2)))<0 OR FIX(VAL(MID$(HJ$,3,2)))>59 THEN GOTO 13270
  255. 13310  AD=VAL(HJ$)
  256. 13320  IF AD<0 OR AD>2400 THEN GOTO 13270
  257. 13330  IF AC>AD THEN SWAP AC,AD
  258. 13340  GOTO 12360
  259. 13342  LOCATE 24,5:PRINT"Use on-line printer's bell to the page SYSOP? (YES or NO) ";
  260. 13343  GOSUB 22380:ON AB GOTO 13344,13344,13342,13342
  261. 13344  M11$=HJ$
  262. 13345  GOTO 12360
  263. 13350  A$="":MID$(SG$,24,5)="1Q0X1"
  264. 13351  GOSUB 50340:LOCATE 24,5:PRINT"How many rings should RBBS-PC wait before answering? "+A$;
  265. 13360  LINE INPUT;HJ$
  266. 13370  CE=FIX(VAL(HJ$))
  267. 13380  IF CE<0 OR CE>255 THEN GOTO 13350 ELSE IF CE=0 THEN GOTO 12360
  268. 13381  GOSUB 50340:LOCATE 24,5:PRINT"When phone rings, answer next call on"+STR$(CE)+" rings(ringback)? (YES/NO)";
  269. 13382  GOSUB 22380:ON AB GOTO 13395,13390,13381,13381
  270. 13390  IF CE>5 THEN A$="(<6 for ringback)":GOTO 13351
  271. 13394  MID$(SG$,24,5)="255  ":GOTO 12360
  272. 13395  MID$(SG$,24,5)="0    ":GOTO 12360
  273. 13400  LOCATE 24,5:PRINT"Specify single drive in the range A->"+M$+" for uploading. ";
  274. 13410  LINE INPUT;HJ$
  275. 13420  IF LEN(HJ$)<>1 THEN GOTO 13400
  276. 13430  GOSUB 50654
  277. 13440  IF HJ$<"A" OR HJ$>M$ THEN GOTO 13400
  278. 13450  M6$=HJ$
  279. 13460  GOTO 12360
  280. 13470  LOCATE 24,5:PRINT"Specify download drives (max of"+STR$(MAXD)+" in the range A-> "+M$+"). ";
  281. 13480  LINE INPUT;HJ$
  282. 13490  IF LEN(HJ$)<1 OR LEN(HJ$)>MAXD THEN GOTO 13470
  283. 13500  GOSUB 50654
  284. 13510  FOR I=1 TO LEN(HJ$)
  285. 13520  A$(I)=MID$(HJ$,I,1)
  286. 13530  NEXT
  287. 13540  FOR I=1 TO LEN(HJ$)
  288. 13550  IF A$(I)<"A" OR A$(I)>M$ THEN GOTO 13470
  289. 13560  NEXT
  290. 13570  M7$=HJ$
  291. 13580  GOTO 12360
  292. 13590  A$="Name of upload directory (max of 8 characters).":MAX=8:GOTO 13599
  293. 13591  A$="Master directory name--used as ext. for others. (3 char. max).":MAX=3
  294. 13599  LOCATE 24,5:PRINT A$;
  295. 13600  LINE INPUT;HJ$:GOSUB 50654
  296. 13610  IF LEN(HJ$)<1 OR LEN(HJ$)>MAX THEN GOTO 13599
  297. 13620  FOR J=1 TO LEN(HJ$)
  298. 13630      X=ASC(MID$(HJ$,J,1))
  299. 13640      IF (X>64 AND X<91) THEN GOTO 13720
  300. 13650      IF (X>47 AND X<58) THEN GOTO 13720
  301. 13660      IF (X=33) THEN GOTO 13720
  302. 13670      IF (X>34 AND X<42) THEN GOTO 13720
  303. 13680      IF (X>43 AND X<46) THEN GOTO 13720
  304. 13690      IF (X>96 AND X<124) THEN GOTO 13720
  305. 13700      IF (X=125) THEN GOTO 13720
  306. 13710  GOTO 13599
  307. 13720  NEXT
  308. 13740  RETURN
  309. 13750  LOCATE 24,5:PRINT"Prompt bell default? (ON or OFF) ";
  310. 13760  LINE INPUT;HJ$
  311. 13770  IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 13750
  312. 13780  GOSUB 50654
  313. 13790  IF HJ$="ON" THEN GOTO 13820
  314. 13800  IF HJ$="OFF" THEN GOTO 13820
  315. 13810  GOTO 13750
  316. 13820  M10$=HJ$
  317. 13830  GOTO 12360
  318. 13840  LOCATE 24,5:PRINT"Set maximum minutes a user can stay on the system ";
  319. 13850  LINE INPUT;HJ$
  320. 13860  TC!=VAL(HJ$)
  321. 13870  IF TC!<0 OR TC!>1440 THEN GOTO 13840
  322. 13880  GOTO 12360
  323. 13890  J=250:IF ((MQ!-1-MC)/5)<J THEN J=(MQ!-1-MC)/5
  324. 13895  GOSUB 50340:LOCATE 24,5:PRINT"Set maximum number of messages allowed (MAX="+STR$(FIX(J))+")";
  325. 13900  LINE INPUT;HJ$
  326. 13910  MP=VAL(HJ$)
  327. 13920  IF MP<1 AND MP>250 THEN GOTO 13890
  328. 13922  IF MP>0 AND MP<251 AND MP<J+1 THEN GOTO 13929
  329. 13924  GOSUB 50340:LOCATE 24,5:PRINT"Increase the "+ME$+" file to "+STR$((MP*5)+1+MC)+" records? (YES OR NO) ";
  330. 13926  GOSUB 22380:ON AB GOTO 13890,13927,13890,13890
  331. 13927  IM=MP:GOSUB 30450:B3!=(MP*5)+1+MC:GOSUB 22080:GOTO 21550
  332. 13929  IM=MP:GOSUB 30450
  333. 13930  GOTO 21550
  334. 13940  LOCATE 24,5:PRINT"Set number of months before an inactive user is purged. ";
  335. 13950  LINE INPUT;HJ$
  336. 13960  LA=VAL(HJ$)
  337. 13970  IF LA<1 OR LA>12 THEN GOTO 13940
  338. 13980  GOTO 12360
  339. 14120  CP1=1
  340. 14130  CP2=2
  341. 14140  LOCATE 24,5:PRINT"Number of communication port to be used ("+STR$(CP1)+" or"+STR$(CP2)+" )? ";
  342. 14150  LINE INPUT;HJ$
  343. 14160  IF LEN(HJ$)<>1 THEN GOTO 14120
  344. 14170  IF FIX(VAL(MID$(HJ$,1,1)))<CP1 OR FIX(VAL(MID$(HJ$,1,1)))>CP2 THEN GOTO 14120
  345. 14180  M13$="COM"+HJ$
  346. 14190  GOTO 12360
  347. 14200  CN=2
  348. 14210  GOSUB 24800
  349. 14220  LOCATE  3,10:PRINT"21. Foreground color (for color monitors) is -----"STR$(FGR)
  350. 14230  LOCATE  4,10:PRINT"22. Background color (for color monitors) is -----"STR$(BGR)
  351. 14240  LOCATE  5,10:PRINT"23. The border color (for color monitors) is -----"STR$(BDR)
  352. 14250  LOCATE  6,10:PRINT"24. The modem speaker default is ----------------- "+M14$
  353. 14260  LOCATE  7,10:PRINT"25. Remind users of messages that they left ------ "+M16$
  354. 14270  LOCATE  8,10:PRINT"26. Remind users of # uploads and downloads? ----- "+M19$
  355. 14275  LOCATE  9,10:PRINT"27. Remind users of their terminal profile? ------ "+M20$
  356. 14280  LOCATE 10,10:PRINT"28. Default user page length is ------------------"STR$(PL)
  357. 14290  LOCATE 11,10:PRINT"29. Maximum number of lines allowed per message --"STR$(LW)
  358. 14300  LOCATE 12,10:PRINT"30. Require non-ascii protocol for binary files -- "+M17$
  359. 14305  LOCATE 13,10:PRINT"31. Is MICROCOM's MNP protocol available? -------- "+M29$
  360. 14310  LOCATE 14,10:PRINT"32. Omit ";DIR$;" from N)ew command ";STRING$(22-LEN(DIR$),"-");" ";OB$
  361. 14320  LOCATE 15,10:PRINT"33. Omit ";M6$+":"+UF$;" from N)ew command ";STRING$(20-LEN(UF$),"-");" ";OC$
  362. 14330  LOCATE 16,10:PRINT"34. Is system 'welcome' interruptable? ----------- "+M18$
  363. 14340  LOCATE 17,10:PRINT"35. Are system bulletins to be 'optional'? ------- "+M15$
  364. 14350  IF CM THEN M27$="YES" ELSE M27$="NO
  365. 14360  LOCATE 18,10:PRINT"36. Will RBBS-PC be running on a non-IBM PC? ----- "+M27$
  366. 14365  LOCATE 19,10:PRINT"37. Issue modem commands between rings ----------- "+M28$
  367. 14366  LOCATE 20,10:PRINT"38. Baud rate to initially open modem at --------- "+B$
  368. 14367  LOCATE 21,10:PRINT"39. Seconds waited before logging off idle users -"+STR$(TY)
  369. 14370  GOSUB 24890
  370. 14380  GOSUB 22160
  371. 14390  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,12360,14570,14410
  372. 14400  GOTO 14380
  373. 14410  GOSUB 50340:IF VAL(HJ$)<21 OR VAL(HJ$)>39 THEN 14370 ELSE ON VAL(HJ$)-20 GOTO 14420,14430,14440,15710,15800,16690,16722,16730,16790,15880,15911,15920,15960,16000,15840,16040,16121,16124,16031
  374. 14420  GOSUB 15520: GOTO 15530
  375. 14430  GOSUB 15520: GOTO 15590
  376. 14440  GOSUB 15520: GOTO 15650
  377. 14570  CN=3
  378. 14580  GOSUB 24800
  379. 14590  LOCATE  3,10:PRINT"41. Drive containing RBBS-PC bulletins is -------- "+BD$
  380. 14600  LOCATE  4,10:PRINT"42. Name of file describing 'bulletins' is ------- "+BA$
  381. 14610  LOCATE  5,10:PRINT"43. Number of active 'bulletins' -----------------"+STR$(BG)
  382. 14620  LOCATE  6,10:PRINT"44. Prefix used to name bulletin files is -------- "+BB$
  383. 14630  LOCATE  7,10:PRINT"45. Drive containing 'help' files is ------------- "+HB$
  384. 14640  LOCATE  8,10:PRINT"46. Prefix used to name the nine 'help' files ---- "+HA$
  385. 14650  LOCATE  9,10:PRINT"47. Name of 'newuser' file shown to new users ---- "+NA$
  386. 14660  LOCATE 10,10:PRINT"48. Name of 'welcome' file shown at logon -------- "+WA$
  387. 14670  LOCATE 11,10:PRINT"49. File directory ext. (name of master directory) "+DIR$
  388. 14680  LOCATE 12,10:PRINT"50. The SYSOP's command menu is named ------------ "+MG$
  389. 14690  LOCATE 13,10:PRINT"51. The main messages subsystem menu is named ---- "+MH$
  390. 14700  LOCATE 14,10:PRINT"52. The file subsystem menu is named ------------- "+MI$
  391. 14710  LOCATE 15,10:PRINT"53. The utilities subsystem menu is named -------- "+MJ$
  392. 14730  LOCATE 16,10:PRINT"54. Menu that lists available conferences is ----- "+CD$
  393. 14740  LOCATE 17,10:PRINT"55. File containing invalid user names ----------- "+BC$
  394. 14742  LOCATE 18,10:PRINT"56. Factor to extend session time for uploads ----"+STR$(UPX!)
  395. 14744  LOCATE 19,10:PRINT"57. Default system type for new callers ---------- "+SY$
  396. 14750  GOSUB 24890
  397. 14760  GOSUB 22160
  398. 14770  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,14200,15340,14790
  399. 14780  GOTO 14760
  400. 14790  GOSUB 50340
  401. 14800  IF HJ$="41"THEN GOSUB 15160:BD$=TB$:GOTO 14570
  402. 14810  IF HJ$="42" THEN GOSUB 14970:BA$=HJ$: GOTO 14570
  403. 14820  IF HJ$="43" THEN GOTO 15290
  404. 14830  IF HJ$="44" THEN GOSUB 14970: IF LEN(HJ$)>6 THEN HJ$="44":GOTO 14810 ELSE BB$=HJ$: GOTO 14570
  405. 14840  IF HJ$="45" THEN GOSUB 15160:HB$=HJ$: GOTO 14570
  406. 14850  IF HJ$="46" THEN GOSUB 14970: IF LEN(HJ$)>7 THEN HJ$="44":GOTO 14810 ELSE HA$=HJ$: GOTO 14570
  407. 14860  IF HJ$="47" THEN GOSUB 17330: NA$=SJ$+":"+HJ$: GOTO 14570
  408. 14870  IF HJ$="48" THEN GOSUB 17330: WA$=SJ$+":"+HJ$: GOTO 14570
  409. 14880  IF HJ$="49" THEN GOSUB 13591: DIR$=HJ$: GOTO 14570
  410. 14890  IF HJ$="50" THEN GOSUB 17330: MG$=SJ$+":"+HJ$: GOTO 14570
  411. 14900  IF HJ$="51" THEN GOSUB 17330: MH$=SJ$+":"+HJ$: GOTO 14570
  412. 14910  IF HJ$="52" THEN GOSUB 17330: MI$=SJ$+":"+HJ$: GOTO 14570
  413. 14920  IF HJ$="53" THEN GOSUB 17330: MJ$=SJ$+":"+HJ$: GOTO 14570
  414. 14940  IF HJ$="54" THEN GOSUB 17330: CD$=SJ$+":"+HJ$: GOTO 14570
  415. 14950  IF HJ$="55" THEN GOSUB 17330: BC$=SJ$+":"+HJ$:GOTO 14570
  416. 14952  IF HJ$="56" THEN GOSUB 15234:GOTO 14570
  417. 14954  IF HJ$="57" THEN GOSUB 15236:GOTO 14570
  418. 14960  GOTO 14750
  419. 14970  X$=HJ$
  420. 14980  LOCATE 24,5:PRINT SPC(74):LOCATE 24,5:PRINT"Specify name of the file for option "+X$+". ";
  421. 14990  LINE INPUT;HJ$:GOSUB 50654
  422. 15000  IF LEN(HJ$)<1 OR LEN(HJ$)>12 THEN GOTO 14980
  423. 15010  L1=INSTR(HJ$,"."):IF L1=0 THEN IF LEN(HJ$)<9 THEN GOTO 15050 ELSE GOTO 14980
  424. 15020  IF L1>9 THEN GOTO 14980
  425. 15030  IF L1<2 THEN GOTO 14980
  426. 15040  IF LEN(HJ$)-L1>3 THEN GOTO 14980
  427. 15050  FOR J=1 TO LEN(HJ$)
  428. 15060      X=ASC(MID$(HJ$,J,1))
  429. 15070      IF (X>63 AND X<91) THEN GOTO 15150
  430. 15080      IF (X>47 AND X<58) THEN GOTO 15150
  431. 15090      IF (X=33) THEN GOTO 15150
  432. 15100      IF (X>34 AND X<42) THEN GOTO 15150
  433. 15110      IF (X>43 AND X<47) THEN GOTO 15150
  434. 15120      IF (X>96 AND X<124) THEN GOTO 15150
  435. 15130      IF (X=125) THEN GOTO 15150
  436. 15140  GOTO 14980
  437. 15150  NEXT: RETURN
  438. 15160  X$=HJ$
  439. 15170  LOCATE 24,5:PRINT"Specify drive in the range A->"+M$+" for option "+X$". ";
  440. 15180  LINE INPUT;HJ$
  441. 15190  IF LEN(HJ$)<>1 THEN GOTO 15170
  442. 15200  GOSUB 50654
  443. 15210  IF HJ$<"A" OR HJ$>M$ THEN GOTO 15170
  444. 15220  TB$=HJ$
  445. 15230  RETURN
  446. 15234  LOCATE 24,5:PRINT "Extend by what fraction of time uploading ";:LINE INPUT;HJ$:IF VAL(HJ$)<0 OR VAL(HJ$)>10 THEN 15234 ELSE UPX!=VAL(HJ$):RETURN
  447. 15236  LOCATE 24,5:PRINT "Enter default system type ";:LINE INPUT;SY$:IF LEN(SY$)<2 THEN GOSUB 50340:GOTO 15236 ELSE RETURN
  448. 15240  LOCATE 24,5:PRINT"What version of DOS will RBBS-PC be running under (1, 2, or 3)?";
  449. 15250  LINE INPUT;HJ$
  450. 15260  B1=VAL(HJ$)
  451. 15270  IF B1<1 OR B1>3 THEN GOTO 15240
  452. 15280  DA=B1:GOTO 12360
  453. 15290  LOCATE 24,5:PRINT"Enter number of active 'bulletins' (0 to 99)";
  454. 15300  LINE INPUT;HJ$
  455. 15310  B1%=VAL(HJ$)
  456. 15320  IF B1%<1 OR B1%>99 THEN GOTO 15290
  457. 15330  BG=B1%:GOTO 14570
  458. 15340  CN=4
  459. 15350  GOSUB 24800
  460. 15360  LOCATE  4,10:PRINT"61. System file containing messages is named ----- "+ME$
  461. 15380  LOCATE  5,10:PRINT"62. System file for 'callers' is named ----------- "+CB$
  462. 15390  LOCATE  6,10:PRINT"63. System file for comments to SYSOP is named --- "+CC$
  463. 15400  LOCATE  7,10:PRINT"64. System file for recording users is named ----- "+UC$
  464. 15410  GOSUB 24890
  465. 15420  GOSUB 22160
  466. 15430  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,14570,16130,15450
  467. 15440  GOTO 15420
  468. 15450  GOSUB 50340
  469. 15460  IF HJ$="61" THEN GOSUB 17330: GOTO 15511
  470. 15480  IF HJ$="62" THEN GOSUB 17330: CB$=SJ$+":"+HJ$:GOTO 15340
  471. 15490  IF HJ$="63" THEN GOSUB 17330: CC$=SJ$+":"+HJ$:GOTO 15340
  472. 15500  IF HJ$="64" THEN GOSUB 17330: GOTO 15512
  473. 15510  GOTO 15410
  474. 15511  IF LEN(HJ$)>8 OR INSTR(HJ$,".") THEN HJ$="61":GOTO 15460 ELSE ME$=SJ$+":"+HJ$:MF$=ME$+".BAK":MAINMSG$=ME$:GOTO 15340
  475. 15512  IF LEN(HJ$)>8 OR INSTR(HJ$,".") THEN HJ$="64":GOTO 15500 ELSE UC$=SJ$+":"+HJ$:MAINUSR$=UC$:GOTO 15340
  476. 15520  LOCATE 24,5:PRINT"(See the description of the COLOR statement in Basic.)";:RETURN
  477. 15530  LOCATE 25,5:PRINT"Enter foreground color (a value between 0 and 15)";
  478. 15540  LINE INPUT;HJ$
  479. 15550  B1=VAL(HJ$)
  480. 15560  IF B1<0 OR B1>15 THEN GOTO 15530
  481. 15570  FGR=B1
  482. 15580  GOTO 14200
  483. 15590  LOCATE 25,5:PRINT"Enter background color (a value between 0 and 7)";
  484. 15600  LINE INPUT;HJ$
  485. 15610  B1=VAL(HJ$)
  486. 15620  IF B1<0 OR B1>7 THEN GOTO 15590
  487. 15630  BGR=B1
  488. 15640  GOTO 14200
  489. 15650  LOCATE 25,5:PRINT"Enter the border color (a value between 0 and 7)";
  490. 15660  LINE INPUT;HJ$
  491. 15670  B1=VAL(HJ$)
  492. 15680  IF B1<0 OR B1>7 THEN GOTO 15650
  493. 15690  BDR=B1
  494. 15700  GOTO 14200
  495. 15710  LOCATE 24,5:PRINT"Modem speaker default? (ON or OFF) ";
  496. 15720  LINE INPUT;HJ$
  497. 15730  IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 15710
  498. 15740  GOSUB 50654
  499. 15750  IF HJ$="ON" THEN GOTO 15780
  500. 15760  IF HJ$="OFF" THEN GOTO 15780
  501. 15770  GOTO 15710
  502. 15780  M14$=HJ$
  503. 15790  GOTO 14200
  504. 15800  LOCATE 24,5:PRINT"Remind users of the messages they left? (YES or NO) ";
  505. 15810  GOSUB 22380:ON AB GOTO 15820,15820,15800,15800
  506. 15820  M16$=HJ$
  507. 15830  GOTO 14200
  508. 15840  LOCATE 24,5:PRINT"Are system bulletins to be optional? (YES or NO) ";
  509. 15850  GOSUB 22380:ON AB GOTO 15860,15860,15840,15840
  510. 15860  M15$=HJ$
  511. 15870  GOTO 14200
  512. 15880  LOCATE 24,5:PRINT"Is non-ascii protocol required for binary files? (YES or NO) ";
  513. 15890  GOSUB 22380:ON AB GOTO 15900,15900,15880,15880
  514. 15900  M17$=HJ$
  515. 15910  GOTO 14200
  516. 15911  LOCATE 24,5:PRINT"Enable MICROCOM's MNP protocol? (YES or NO) ";
  517. 15912  GOSUB 22380:ON AB GOTO 15913,15913,15911,15911
  518. 15913  M29$=HJ$
  519. 15914  GOTO 14200
  520. 15920  LOCATE 24,5:PRINT"Is ";DIR$;" omitted from the N)ew command? (YES or NO) ";
  521. 15930  GOSUB 22380:ON AB GOTO 15940,15940,15920,15920
  522. 15940  OB$=HJ$
  523. 15950  GOTO 14200
  524. 15960  LOCATE 24,5:PRINT"Is ";UF$;" omitted from the N)ew command? (YES or NO) ";
  525. 15970  GOSUB 22380:ON AB GOTO 15980,15980,15960,15960
  526. 15980  OC$=HJ$
  527. 15990  GOTO 14200
  528. 16000  LOCATE 24,5:PRINT"Is system 'welcome' interruptable (YES OR NO) ";
  529. 16010  GOSUB 22380:ON AB GOTO 16020,16020,16000,16000
  530. 16020  M18$=HJ$
  531. 16030  GOTO 14200
  532. 16031  LOCATE 24,5:PRINT"Seconds users can be idle before being logged off";
  533. 16032  LINE INPUT;HJ$
  534. 16033  TY=VAL(HJ$)
  535. 16034  IF TY<1 OR TY>32400 THEN GOTO 16031
  536. 16035  GOTO 14200
  537. 16040  LOCATE 24,5:PRINT"Will RBBS-PC be running on a non-IBM PC (YES OR NO) ";
  538. 16050  GOSUB 22380:ON AB GOTO 16060,16080,16040,16040
  539. 16060  CM=0
  540. 16070  GOTO 14200
  541. 16080  GOSUB 50340:LOCATE 24,5:PRINT"Will RBBS-PC be running on a COMPAQ+ (YES OR NO) ";
  542. 16090  GOSUB 22380:ON AB GOTO 16110,16100,16080,16080
  543. 16100  CM=1:GOTO 14200
  544. 16110  CM=2:GOTO 14200
  545. 16120  GOTO 14200
  546. 16121  LOCATE 24,5:PRINT"Wait to issue modem commands between rings? (YES OR NO) ";
  547. 16122  GOSUB 22380:ON AB GOTO 16123,16123,16121,16121
  548. 16123  M28$=HJ$:GOTO 14200
  549. 16124  LOCATE 25,5:PRINT"Enter initial baud rate (300, 1200, 2400) to open modem at ";
  550. 16125  LINE INPUT;HJ$
  551. 16126  B1=VAL(HJ$)
  552. 16127  IF B1=300 OR B1=1200 OR B1=2400 THEN GOTO 16128 ELSE GOTO 16124
  553. 16128  B$=MID$(STR$(B1),2)
  554. 16129  GOTO 14200
  555. 16130  CN=5
  556. 16140  GOSUB 24800
  557. 16150  LOCATE  3,10:PRINT"81. Is the 'door' subystem available? ------------ "+M21$
  558. 16160  LOCATE  4,10:PRINT"82. The 'door' subsystem menu is named ----------- "+MK$
  559. 16170  LOCATE  5,10:PRINT"83. File RBBS builds dynamically to open a 'door'- "+CI$
  560. 16180  LOCATE  6,10:PRINT"84. When a 'door' closes, file to re-invoke RBBS - "+RB$
  561. 16190  GOSUB 24890
  562. 16200  GOSUB 22160
  563. 16210  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,15340,16910,16230
  564. 16220  GOTO 16200
  565. 16230  GOSUB 50340
  566. 16240  IF HJ$="81" THEN GOTO 16290
  567. 16250  IF HJ$="82" THEN GOSUB 17330: MK$=SJ$+":"+HJ$:GOTO 16130
  568. 16260  IF HJ$="83" THEN GOSUB 17330: CI$=SJ$+":"+HJ$:GOTO 16130
  569. 16270  IF HJ$="84" THEN GOSUB 17330: RB$=SJ$+":"+HJ$:GOTO 16130
  570. 16280  GOTO 16190
  571. 16290  LOCATE 24,5:PRINT"Is the window subsystem available? (YES or NO) ";
  572. 16300  GOSUB 22380:ON AB GOTO 16310,16310,16290,16290
  573. 16310  M21$=HJ$
  574. 16320  IF M21$="NO" GOTO 16130 ELSE GOSUB 50340:LOCATE 24,1:PRINT "Will you be running RBBS-PC under MultiLink from The Software Link? ";
  575. 16330  GOSUB 22380:ON AB GOTO  16340,16350,16290,16290
  576. 16340  IA!=FNTI!+15:GOSUB 16470:GOTO 16130
  577. 16350  GOSUB 16380:GOTO 16360
  578. 16360  LOCATE 23,1:PRINT"Current Multi-Link terminal type for WINDOWS is ";MN
  579. 16370  GOSUB 50340:LOCATE 24,1:PRINT "Enter Multi-Link terminal type for WINDOWS ";:GOSUB 17420:MN=B1:IF MN <1 THEN 16370 ELSE IF MN >12 THEN GOTO 16370 ELSE GOTO 16130
  580. 16380  CLS:PRINT "Multi-Link is a software product of The Software Link, Inc.":PRINT"located at 6700 23-B Roswell Road, Atlanta, Georgia  30328.":PRINT "It allows IBM's DOS 1.1 or 2.0 or the IBM PC to be a multi-tasking
  581. 16400  PRINT "operating system.  The Capital PC User Group has no connection
  582. 16410  PRINT "whatsoever with this company or it's products.  In fact The Software":PRINT"Link has only occasionally sent updates of it's new releases to us.":PRINT"That is the reason that RBBS-PC is only supported under Release 3.01 of
  583. 16420  PRINT"Multi-Link.  I feel strongly that IBM's DOS for the PC should be":PRINT"multi-tasking.  Because Multi-Link provides this capability for the widest
  584. 16430  PRINT"ranges of DOS software for the IBM PC, RBBS-PC has been enhanced":PRINT "to run under Multi-Link.  Any questions regarding RBBS-PC under Multi-Link":PRINT"(other than Release 3.01 of Multi-Link) should be directed to The
  585. 16440  PRINT"Software Link's customer support group at (404) 998-0788.":PRINT"":PRINT"I have run RBBS-PC under Multi-Link since December 1983 -- since Multi-Link":PRINT"release 2.04.  Since Multi-Link release 2.06 I HAVE NEVER HAD A SYSTEM CRASH
  586. 16450  PRINT"due to Multi-Link.  I think it is a quality product but a bit over-priced.":PRINT "My opnion on Multi-Link's price reflects my prejudice that all PC software":PRINT"should be relatively inexpensive.":PRINT"":PRINT SPC(60);"Tom Mack
  587. 16460  PRINT SPC(60);"July 1, 1984":RETURN
  588. 16470  CLS:PRINT"                ******Warning******":PRINT"IBM's DOS absolutely REQUIRES any software package running":PRINT"as a 'door' (i.e. via a communication port) to monitor the":PRINT"communication port!  Unless the software that you invoke via
  589. 16480  PRINT"the RBBS-PC 'door' mechanism monitors the communication line,":PRINT"your system will be vulnerable to being hung -- and worse!!!":PRINT"If you don't THROUGHLY understand section 10.0 of RBBS-PC's
  590. 16490  PRINT"documentation which discusses the pitfalls of opening RBBS-PC's":PRINT"'doors' to your users, DON'T use 'doors'!!!!!
  591. 16640  IF FNTI!<IA! THEN 16640 ELSE RETURN
  592. 16650  LOCATE 24,5:PRINT"Limit the maximum time a users can be on each day? (YES or NO) ";
  593. 16660  GOSUB 22380:ON AB GOTO 16670,16670,16650,16650
  594. 16670  M26$=HJ$
  595. 16680  GOTO 12360
  596. 16690  LOCATE 24,5:PRINT"Remind users of # uploads and downloads? (YES or NO) ";
  597. 16700  GOSUB 22380:ON AB GOTO 16710,16710,16690,16690
  598. 16710  M19$=HJ$
  599. 16720  GOTO 14200
  600. 16722  LOCATE 24,5:PRINT"Remind users of their terminal's profile? (YES or NO) ";
  601. 16723  GOSUB 22380:ON AB GOTO 16724,16724,16722,16722
  602. 16724  M20$=HJ$
  603. 16725  GOTO 14200
  604. 16730  LOCATE 24,5:PRINT"Default user page length?(a value between 0 and 255)";
  605. 16740  LINE INPUT;HJ$
  606. 16750  B1=VAL(HJ$)
  607. 16760  IF B1<0 OR B1>255 THEN GOTO 16730
  608. 16770  PL=B1
  609. 16780  GOTO 14200
  610. 16790  LOCATE 24,5:PRINT"Maximum number of lines allowed per message (1->30)";
  611. 16800  LINE INPUT;HJ$
  612. 16810  B1=VAL(HJ$)
  613. 16820  IF B1<1 OR B1>30 THEN GOTO 16790
  614. 16830  LW=B1
  615. 16840  GOTO 14200
  616. 16850  LOCATE 24,5:PRINT"Security level temporarily imposed on conference 'viewers'";
  617. 16860  HJ$="V>iew
  618. 16870  GOSUB 17420:VA=B1
  619. 16900  GOTO 16910
  620. 16910  CN=6
  621. 16920  GOSUB 24800
  622. 16930  LOCATE  3,9:PRINT"101. Minimum security level to get onto RBBS ------ "STR$(ML)
  623. 16940  LOCATE  4,9:PRINT"102. Default security level for new callers ------- "STR$(DB)
  624. 16950  LOCATE  5,9:PRINT"103. Security level for SYSOP --------------------- "STR$(SB)
  625. 16960  LOCATE  6,9:PRINT"104. Files with download security are listed in ---  "+FB$
  626. 16970  LOCATE  7,9:PRINT"105. Minimum security level to see SYSOP's menu --- "STR$(SC)
  627. 16980  LOCATE  8,9:PRINT"106. Minimum security level to use RBBS-PC 'doors'  "+STR$(SD)
  628. 16990  LOCATE  9,9:PRINT"107. Max # security violations before disconnect -- "STR$(ND)
  629. 17000  M22$=STR$(SF):IX=SA(1):FOR I=2 TO 7:IF IX<>SA(I) THEN M22$="(Variable)":GOTO 17010 ELSE NEXT
  630. 17010  LOCATE 10,9:PRINT"108. Security level for SYSOP functions ----------- "M22$
  631. 17020  M23$=STR$(MM):IX=MD(1):FOR I=2 TO 21:IF IX<>MD(I) THEN M23$="(Variable)":GOTO 17030 ELSE NEXT
  632. 17030  LOCATE 11,9:PRINT"109. Security level for main menu functions ------- "M23$
  633. 17040  M24$=STR$(FC):IX=FS(1):FOR I=2 TO 10:IF IX<>FS(I) THEN M24$="(Variable)":GOTO 17050 ELSE NEXT
  634. 17050  LOCATE 12,9:PRINT"110. Security level for file menu functions ------- "M24$
  635. 17060  M25$=STR$(UE):IX=UA(1):FOR I=2 TO 16:IF IX<>UA(I) THEN M25$="(Variable)":GOTO 17070 ELSE NEXT
  636. 17070  LOCATE 13,9:PRINT"111. Security level for utilities menu functions -- "M25$
  637. 17080  LOCATE 14,9:PRINT"112. File with privileged group passwords is named-  "PD$
  638. 17090  LOCATE 15,9:PRINT"113. Max # of password changes in a session ------- "STR$(CG)
  639. 17100  LOCATE 16,9:PRINT"114. Min. security level for temp. password changes "STR$(CH)
  640. 17110  LOCATE 17,9:PRINT"115. Min. security level to overwrite on uploads -- "STR$(WC)
  641. 17115  LOCATE 18,9:PRINT"116. Security level of conference 'viewers' ------- "STR$(VA)
  642. 17116  LOCATE 19,9:PRINT"117. User's security exempted from 'packing' ------ "STR$(PC)
  643. 17120  GOSUB 24890
  644. 17130  GOSUB 22160
  645. 17140  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,16130,21550,17160
  646. 17150  GOTO 17130
  647. 17160  GOSUB 50340
  648. 17170  IF HJ$="101" THEN GOSUB 18730:GOSUB 17410:ML=B1:GOTO 16910
  649. 17180  IF HJ$="102" THEN GOSUB 18730:GOSUB 17410:DB=B1:GOTO 16910
  650. 17190  IF HJ$="103" THEN GOSUB 18730:GOSUB 17410:SB=B1:GOTO 16910
  651. 17200  IF HJ$="104" THEN GOSUB 17330:FB$=SJ$+":"+HJ$:GOTO 16910
  652. 17210  IF HJ$="105" THEN GOSUB 18730:GOSUB 17410:SC=B1:GOTO 16910
  653. 17220  IF HJ$="106" THEN GOSUB 18730:GOSUB 17410:SD=B1:GOTO 16910
  654. 17230  IF HJ$="107" THEN GOSUB 18730:GOSUB 17410:ND=B1:GOTO 16910
  655. 17240  IF HJ$="108" THEN GOTO 17460
  656. 17250  IF HJ$="109" THEN GOSUB 17460:MM=B1:GOTO 16910
  657. 17260  IF HJ$="110" THEN GOSUB 17460:FC=B1:GOTO 16910
  658. 17270  IF HJ$="111" THEN GOSUB 17460:UE=B1:GOTO 16910
  659. 17280  IF HJ$="112" THEN GOSUB 17330:PD$=SJ$+":"+HJ$:GOTO 16910
  660. 17290  IF HJ$="113" THEN GOSUB 50340:LOCATE 24,1:PRINT "Maximum number of password changes is? (0 or more)";:GOSUB 17420:CG=B1:IF B1<0 THEN 17290 ELSE 16910
  661. 17300  IF HJ$="114" THEN GOSUB 18730:GOSUB 17410:CH=B1:GOTO 16910
  662. 17310  IF HJ$="115" THEN HJ$="overwriting files on upload":GOSUB 17410:WC=B1:GOTO 16910
  663. 17315  IF HJ$="116" THEN GOTO 16850
  664. 17316  IF HJ$="117" THEN GOSUB 18730:GOSUB 17410:PC=B1:GOTO 16910
  665. 17320  GOTO 17120
  666. 17330  X$=HJ$:LOCATE 24,5:PRINT"Specify drive (A->"+M$+") where file for option "+X$+" will be located. ";
  667. 17340  LINE INPUT;HJ$
  668. 17350  IF LEN(HJ$)<>1 THEN HJ$=X$:GOTO 17330
  669. 17360  GOSUB 50654
  670. 17370  IF HJ$<"A" OR HJ$>M$ THEN HJ$=X$:GOTO 17330
  671. 17380  SJ$=HJ$
  672. 17390  GOSUB 14980
  673. 17400  RETURN
  674. 17410  GOSUB 50340:LOCATE 24,1:PRINT "Security level for "+HJ$+" is? ";
  675. 17420  LINE INPUT;HK$
  676. 17430  B1=VAL(HK$)
  677. 17440  IF B1=0 AND HK$<>"0" THEN 17410
  678. 17450  RETURN
  679. 17460  IF HJ$="108" THEN CO$="SYSOP":GOTO 18480
  680. 17470  IF HJ$="109" THEN CO$="Main Menu":GOTO 18100
  681. 17480  IF HJ$="110" THEN CO$="File System":GOTO 17820
  682. 17490  IF HJ$="111" THEN CO$="Utilities
  683. 17500  LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  684. 17510  LINE INPUT;X$
  685. 17520  IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 17500
  686. 17530  SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  687. 17540  IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 16:UA(I)=B1:NEXT:UE=B1:GOTO 16910
  688. 17550  IF X$="NO" OR X$="N" THEN GOTO 17570
  689. 17560  GOTO 17500
  690. 17570  GOSUB 25180
  691. 17600  LOCATE  5,10:PRINT"B)aud rate                     "+STR$(UA(1))
  692. 17602  LOCATE  6,10:PRINT"C)ase change                   "+STR$(UA(2))
  693. 17604  LOCATE  7,10:PRINT"F)ile transfer protocol        "+STR$(UA(3))
  694. 17610  LOCATE  8,10:PRINT"G)raphics                      "+STR$(UA(4))
  695. 17620  LOCATE  9,10:PRINT"H)elp                          "+STR$(UA(5))
  696. 17630  LOCATE 10,10:PRINT"L)ine feeds                    "+STR$(UA(6))
  697. 17640  LOCATE 11,10:PRINT"M)sg margin                    "+STR$(UA(7))
  698. 17650  LOCATE 12,10:PRINT"N)ulls                         "+STR$(UA(8))
  699. 17660  LOCATE 13,10:PRINT"P)ass word                     "+STR$(UA(9))
  700. 17670  LOCATE 14,10:PRINT"Q)uit to main menu             "+STR$(UA(10))
  701. 17675  LOCATE 15,10:PRINT"R)eview Default                "+STR$(UA(11))
  702. 17680  LOCATE 16,10:PRINT"S)tatistics                    "+STR$(UA(12))
  703. 17690  LOCATE 17,10:PRINT"T)ime                          "+STR$(UA(13))
  704. 17700  LOCATE 18,10:PRINT"U)serlog                       "+STR$(UA(14))
  705. 17705  LOCATE 19,10:PRINT"X)Expert on/off                "+STR$(UA(15))
  706. 17710  LOCATE 20,10:PRINT"!)Prompt sound                 "+STR$(UA(16))
  707. 17720  GOSUB 25210
  708. 17740  SWAP HJ$,X$
  709. 17750  GOSUB 50654
  710. 17760  SWAP HJ$,X$
  711. 17770  FF=INSTR("BCFGHLMNPQRSTUX!",X$)
  712. 17780  IF FF=0 THEN GOTO 17720
  713. 17790  HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  714. 17800  UA(FF)=B1
  715. 17810  GOTO 17570
  716. 17820  LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  717. 17830  LINE INPUT;X$
  718. 17840  IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 17820
  719. 17850  SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  720. 17860  IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 10:FS(I)=B1:NEXT:FC=B1:GOTO 16910
  721. 17870  IF X$="NO" OR X$="N" THEN GOTO 17890
  722. 17880  GOTO 17820
  723. 17890  GOSUB 25180
  724. 17920  LOCATE  5,10:PRINT"D)ownload a file               "+STR$(FS(1))
  725. 17930  LOCATE  6,10:PRINT"G)oodbye                       "+STR$(FS(2))
  726. 17940  LOCATE  7,10:PRINT"H)elp                          "+STR$(FS(3))
  727. 17950  LOCATE  8,10:PRINT"L)ist files                    "+STR$(FS(4))
  728. 17960  LOCATE  9,10:PRINT"N)ew files                     "+STR$(FS(5))
  729. 17970  LOCATE 10,10:PRINT"Q)uit to main menu             "+STR$(FS(6))
  730. 17975  LOCATE 11,10:PRINT"S)earch directories for string "+STR$(FS(7))
  731. 17980  LOCATE 12,10:PRINT"U)pload a file                 "+STR$(FS(8))
  732. 17985  LOCATE 13,10:PRINT"X)Expert on/off                "+STR$(FS(9))
  733. 17990  LOCATE 14,10:PRINT"?) Xfer info                   "+STR$(FS(10))
  734. 18000  GOSUB 25210
  735. 18020  SWAP HJ$,X$
  736. 18030  GOSUB 50654
  737. 18040  SWAP HJ$,X$
  738. 18050  FF=INSTR("DGHLNQSUX?",X$)
  739. 18060  IF FF=0 THEN GOTO 18000
  740. 18070  HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  741. 18080  FS(FF)=B1
  742. 18090  GOTO 17890
  743. 18100  LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  744. 18110  LINE INPUT;X$
  745. 18120  IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 18100
  746. 18130  SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  747. 18140  IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 21:MD(I)=B1:NEXT:MM=B1:GOTO 16910
  748. 18150  IF X$="NO" OR X$="N" THEN GOTO 18170
  749. 18160  GOTO 18100
  750. 18170  GOSUB 25180
  751. 18175  LOCATE   3,8:PRINT"Command     Security Level
  752. 18176  LOCATE   3,37:PRINT"   Command        Security Level
  753. 18200  LOCATE  5,5:PRINT"B)ulletins            "+STR$(MD(1))
  754. 18210  LOCATE  6,5:PRINT"C)omments             "+STR$(MD(2))
  755. 18220  LOCATE  7,5:PRINT"D)oor subystem        "+STR$(MD(3))
  756. 18230  LOCATE  8,5:PRINT"E)nter message        "+STR$(MD(4))
  757. 18240  LOCATE  9,5:PRINT"F)iles system         "+STR$(MD(5))
  758. 18250  LOCATE 10,5:PRINT"G)oodbye              "+STR$(MD(6))
  759. 18260  LOCATE 11,5:PRINT"H)elp                 "+STR$(MD(7))
  760. 18270  LOCATE 12,5:PRINT"I)nitial welcome      "+STR$(MD(8))
  761. 18275  LOCATE 13,5:PRINT"J)oin a conference    "+STR$(MD(9))
  762. 18280  LOCATE 14,5:PRINT"K)ill messages        "+STR$(MD(10))
  763. 18290  LOCATE 15,5:PRINT"L)ines per page       "+STR$(MD(11))
  764. 18300  LOCATE  5,40:PRINT"O)perator             "+STR$(MD(12))
  765. 18310  LOCATE  6,40:PRINT"P)ersonal mail        "+STR$(MD(13))
  766. 18320  LOCATE  7,40:PRINT"Q)uick scan           "+STR$(MD(14))
  767. 18330  LOCATE  8,40:PRINT"R)ead messages        "+STR$(MD(15))
  768. 18340  LOCATE  9,40:PRINT"S)can messages        "+STR$(MD(16))
  769. 18350  LOCATE 10,40:PRINT"U)tilities (more)     "+STR$(MD(17))
  770. 18355  LOCATE 11,40:PRINT"V)iew a conference    "+STR$(MD(18))
  771. 18357  LOCATE 12,40:PRINT"W)ho's on other nodes "+STR$(MD(19))
  772. 18360  LOCATE 13,40:PRINT"X)Expert on/off       "+STR$(MD(20))
  773. 18370  LOCATE 14,40:PRINT"?)Functions           "+STR$(MD(21))
  774. 18380  GOSUB 25210
  775. 18400  SWAP HJ$,X$
  776. 18410  GOSUB 50654
  777. 18420  SWAP HJ$,X$
  778. 18430  FF=INSTR("BCDEFGHIJKLOPQRSUVWX?",X$)
  779. 18440  IF FF=0 THEN GOTO 18380
  780. 18450  HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  781. 18460  MD(FF)=B1
  782. 18470  GOTO 18170
  783. 18480  LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  784. 18490  LINE INPUT;X$
  785. 18500  IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 18480
  786. 18510  SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  787. 18520  IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 7:SA(I)=B1:NEXT:SF=B1:GOTO 16910
  788. 18530  IF X$="NO" OR X$="N" THEN GOTO 18550
  789. 18540  GOTO 18480
  790. 18550  GOSUB 25180
  791. 18580  LOCATE  5,10:PRINT" 1 List comments               "+STR$(SA(1))
  792. 18590  LOCATE  6,10:PRINT" 2 List callers log            "+STR$(SA(2))
  793. 18600  LOCATE  7,10:PRINT" 3 Recover a Msg               "+STR$(SA(3))
  794. 18610  LOCATE  8,10:PRINT" 4 Erase comments              "+STR$(SA(4))
  795. 18620  LOCATE  9,10:PRINT" 5 Users maintenance           "+STR$(SA(5))
  796. 18630  LOCATE 10,10:PRINT" 6 Toggle page bell            "+STR$(SA(6))
  797. 18650  LOCATE 11,10:PRINT" 7 Exit to DOS 2               "+STR$(SA(7))
  798. 18670  GOSUB 25210
  799. 18690  IF VAL(X$)<1 OR VAL(X$)>7 THEN GOTO 18670
  800. 18700  HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  801. 18710  SA(VAL(X$))=B1
  802. 18720  GOTO 18550
  803. 18730  HJ$="option "+HJ$:RETURN
  804. 18740  GOSUB 50340:IF M5$="NOVICE" THEN XPR=0
  805. 18750  IF M5$="EXPERT" THEN XPR=-1
  806. 18760  FD$=M7$+M6$
  807. 18770  IF M10$="OFF" THEN BE=0
  808. 18780  IF M10$="ON" THEN BE=-1
  809. 18790  IF M11$="YES" THEN MW$=". "+CHR$(7)
  810. 18800  IF M11$="NO" THEN MW$=". "
  811. 18810  IF M12$="COMPILED" THEN CL=TA
  812. 18820  IF M12$="BASICA" THEN CL=FA
  813. 18830  IF M14$="OFF" THEN MID$(SG$,4,1)="0"
  814. 18840  IF M14$="ON" THEN MID$(SG$,4,1)="1"
  815. 18850  IF M15$="YES" THEN OD=TA
  816. 18860  IF M15$="NO" THEN OD=FA
  817. 18870  IF M16$="YES" THEN RC=TA
  818. 18880  IF M16$="NO" THEN RC=FA
  819. 18890  IF M17$="YES" THEN BF=TA
  820. 18900  IF M17$="NO" THEN BF=FA
  821. 18910  IF M18$="YES" THEN OA=TA
  822. 18920  IF M18$="NO" THEN OA=FA
  823. 18930  IF M19$="YES" THEN UD=TA
  824. 18940  IF M19$="NO" THEN UD=FA
  825. 18945  IF M20$="YES" THEN CK=TA
  826. 18946  IF M20$="NO" THEN CK=FA
  827. 18950  IF M21$="YES" THEN WB=TA
  828. 18960  IF M21$="NO" THEN WB=FA
  829. 18970  IF M26$="YES" THEN M26=TA
  830. 18980  IF M26$="NO" THEN M26=FA
  831. 18985  IF M28$="YES" THEN M28=TA
  832. 18986  IF M28$="NO" THEN M28=FA
  833. 18987  IF M29$="YES" THEN M29=TA
  834. 18988  IF M29$="NO" THEN M29=FA
  835. 18989  IF ME$<>MAINMSG$ THEN ME$=MAINMSG$
  836. 18990  IF UC$<>MAINUSR$ THEN UC$=MAINUSR$
  837. 18998  IF F THEN GOSUB 30040
  838. 18999  OPEN "O",#1,CA$
  839. 19010  IF INSTR(MO$,":")<1 THEN MO$=MO$+":
  840. 19020  IF INSTR(SJ$,":")<1 THEN SJ$=SJ$+":
  841. 19030  IF INSTR(TB$,":")<1 THEN TB$=TB$+":
  842. 19031  IF INSTR(BD$,":")<1 THEN BD$=BD$+":
  843. 19032  T$=DIR$:IF INSTR(DIR$,".") THEN T$=MID$(DIR$,INSTR(DIR$,".")+1,LEN(DIR$))
  844. 19033  S$=UF$:IF INSTR(UF$,".") THEN S$=MID$(UF$,1,INSTR(UF$,".")-1)
  845. 19034  DIR$=T$
  846. 19035  UF$=S$
  847. 19040  WRITE #1,FD$,PA$,PB$,NB$,NC$,CE,AC,AD,TC!,MP,LA,UF$,XPR,BG,BE,PRT,CL,MG$,MH$,MI$,MJ$,MK$,CD$,VA,OA,UD,PL,LW,WB,MO$
  848. 19050  IF INSTR(BA$,":")<1 THEN BA$=BD$+BA$
  849. 19060  IF INSTR(BB$,":")<1 THEN BB$=BD$+BB$
  850. 19070  FOR I=1 TO 9
  851. 19080  HA$(I)=HB$+":"+HA$+RIGHT$(STR$(I),1)
  852. 19090  NEXT
  853. 19100  MD(6)=ML:FS(2)=ML
  854. 19110  WRITE #1,ME$,MF$,CB$,CC$,UC$,WA$,NA$,DIR$,M13$,OD,SG$,TB$,DA,FGR,BGR,BDR,RB$,CI$
  855. 19120  WRITE #1,OB$,OC$,HA$(1),HA$(2),HA$(3),HA$(4),HA$(5),HA$(6),HA$(7),HA$(8),HA$(9),BA$,BB$,BD$,RC,BF,SD,MC,SE,CF,UB,MQ!,BC$
  856. 19130  WRITE #1,ML,DB,SB,FB$,SC,KA$,ND,SA(1),SA(2),SA(3),SA(4),SA(5),SA(6),SA(7),PD$,CG,CH,WC,MN,M26
  857. 19140  WRITE #1,MD(1),MD(2),MD(3),MD(4),MD(5),MD(6),MD(7),MD(8),MD(9),MD(10),MD(11),MD(12),MD(13),MD(14),MD(15),MD(16),MD(17),MD(18),MD(19),MD(20),MD(21),SY$,TY
  858. 19150  WRITE #1,FS(1),FS(2),FS(3),FS(4),FS(5),FS(6),FS(7),FS(8),FS(9),FS(10),UA(1),UA(2),UA(3),UA(4),UA(5),UA(6),UA(7),UA(8),UA(9),UA(10),UA(11),UA(12),UA(13),UA(14),UA(15),UA(16),UPX!,CM,CK,FF$,M28,M29,MW$,B$
  859. 19160  WRITE #1,SM1$,SM2$,SM3$,SM4$,SM5$,SM6$,SM7$,SM8$,SM9$,SH$,SI$,PC
  860. 19170  CLOSE #1
  861. 19175  CLS:LOCATE 12,1,1:PRINT "RBBS-PC configuration description file, "+CA$+", now on default drive.":GOSUB 60380
  862. 19179  GOTO 60340
  863. 21550  CN=7
  864. 21560  GOSUB 30040
  865. 21565  UB=IG:MQ!=IH:MP=IM
  866. 21570  GOSUB 24800
  867. 21580  LOCATE  3,9:PRINT"121. Maximum number of concurrent RBBS-PC's  -------"STR$(MC)
  868. 21590  IF MC=1 THEN MT$="single RBBS-PC copy " ELSE MT$="concurrent RBBS-PC's":GOSUB 21900:IF SE<0 OR SE>4 THEN GOTO 21810
  869. 21600  LOCATE  4,9:PRINT"122. Environment running "+MT$+" ------ "+EA$
  870. 21610  LOCATE  5,9:PRINT"123. RBBS-PC 'recycle' method when users log off --- "+RA$
  871. 21615  FILE$=ME$:GOSUB 30180:MQ!=UG
  872. 21620  LOCATE  6,9:PRINT"124. Number of records in the "+UC$+" file ";STRING$(16-LEN(UC$),"-");STR$(UB)
  873. 21630  LOCATE  7,9:PRINT"125. Number of records in "+ME$+" file ";STRING$(20-LEN(ME$),"-");STR$(MQ!)
  874. 21635  LOCATE  8,9:PRINT"126. Maximum number of messages allowed ------------"STR$(MP)
  875. 21636  LOCATE  9,9:PRINT"127. Conference File Maintenance.
  876. 21640  GOSUB 24890
  877. 21650  GOSUB 22160
  878. 21660  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,16910,23000,21680
  879. 21670  GOTO 21650
  880. 21680  GOSUB 50340
  881. 21690  IF HJ$="121" THEN GOTO 21750
  882. 21700  IF HJ$="122" THEN GOTO 21810
  883. 21710  IF HJ$="123" THEN GOTO 21950
  884. 21720  IF HJ$="125" THEN GOSUB 22040:GOTO 21550
  885. 21730  IF HJ$="124" THEN IF F=2 THEN GOSUB 22560:GOTO 21550 ELSE GOSUB 22100:GOTO 21550
  886. 21735  IF HJ$="126" THEN GOTO 13890
  887. 21736  IF HJ$="127" THEN GOTO 25040
  888. 21740  GOTO 21640
  889. 21750  GOSUB 50340:LOCATE 24,5:PRINT"Maximum number of conurrent RBBS-PC's? (a value between 1 and 36)";
  890. 21760  LINE INPUT;HJ$
  891. 21770  B1=VAL(HJ$)
  892. 21780  IF B1<1 OR B1>36 THEN GOTO 21750
  893. 21790  IF MC=B1 THEN GOTO 21550
  894. 21795  B3!=MQ!:GOSUB 30610
  895. 21800  GOTO 21550
  896. 21810  CLS:LOCATE  3,5:PRINT"RBBS-PC is supported in the following:
  897. 21820  LOCATE  5,20:PRINT"Environment
  898. 21825  LOCATE  7,10:PRINT"0. Single RBBS-PC in an IBM DOS environment
  899. 21830  LOCATE  9,10:PRINT"1. MultiLink (multi-tasking under single DOS)
  900. 21840  LOCATE 11,10:PRINT"2. Omninet (CORVUS)
  901. 21850  LOCATE 13,10:PRINT"3. PC-NET (Orchid)
  902. 21860  LOCATE 15,10:PRINT"4. Top-View (IBM's multi-tasking for DOS 3.1) -- not yet supported
  903. 21870  GOSUB 50340:LOCATE 24,5:PRINT"Select environment (0 to 4, CR to end)";
  904. 21880  LINE INPUT;X$:IF X$="" THEN GOTO 21550 ELSE SE=VAL(X$):GOSUB 21890:GOTO 21550
  905. 21890  IF SE<0 OR SE>4 GOTO 21870
  906. 21895  IF SE=0 THEN EA$="IBM's DOS
  907. 21900  IF SE=1 THEN EA$="MultiLink
  908. 21910  IF SE=2 THEN EA$="Omninet
  909. 21920  IF SE=3 THEN EA$="PC-NET
  910. 21930  IF SE=4 THEN EA$="Top-View -- future
  911. 21940  RETURN
  912. 21950  GOSUB 50340:LOCATE 24,5:PRINT"How RBBS-PC recycles when users logs off (SYSTEM or INTERNAL)? ";
  913. 21960  LINE INPUT;HJ$
  914. 21970  IF LEN(HJ$)<1 OR LEN(HJ$)>8 THEN GOTO 21950
  915. 21980  GOSUB 50654
  916. 21990  IF HJ$="SYSTEM" THEN CF=1:GOTO 22020
  917. 22000  IF HJ$="INTERNAL" THEN CF=0:GOTO 22020
  918. 22010  GOTO 21950
  919. 22020  RA$=HJ$
  920. 22030  GOTO 21550
  921. 22040  GOSUB 50340:LOCATE 24,5:PRINT"Max. records in preformatted "+ME$+" file (>"+STR$(5*MP+1+MC)+"):";
  922. 22050  LINE INPUT;HJ$
  923. 22060  B3!=VAL(HJ$)
  924. 22070  IF B3!<=(5*MP+1+MC) OR B3!>1E+07 THEN GOTO 22040
  925. 22080  B1=MC:GOSUB 30610:MQ!=B3!
  926. 22090  RETURN
  927. 22100  GOSUB 50340:LOCATE 24,5:FF=IE:IF FF>1 THEN FF=FF-1
  928. 22105  GOSUB 50340:LOCATE 24,5:PRINT STR$(FF)+" of"+STR$(IG)+" records used. Enter new maximum number of records for "+UC$+":";
  929. 22110  LINE INPUT;HJ$
  930. 22120  B1=VAL(HJ$)
  931. 22130  IF B1<1 OR B1>99999 OR B1<FF THEN GOTO 22100
  932. 22140  B2=2:WHILE B2<B1:B2=B2*2:WEND:IF UB=B2 THEN RETURN
  933. 22142  GOSUB 50340:LOCATE 24,5:PRINT"Change "+UC$+" file to"+STR$(B2)+" records? (YES or NO)";
  934. 22144  GOSUB 22380:ON AB GOTO 22100,22150,22100,22100
  935. 22150  UB=B2:D.FLAG=-1:GOSUB 24110:IB=1:UB=B2:IG=B2:GOSUB 30450:GOSUB 50340:RETURN
  936. 22160  I!=FRE(C$):Y$=INKEY$
  937. 22170  IX=0
  938. 22180  IF LEN(Y$)<1 THEN GOTO 22160
  939. 22190  IF LEN(Y$)=2 THEN GOTO 22240
  940. 22200  IF ASC(Y$)=13 THEN IX=12:RETURN
  941. 22205  IF ASC(Y$)=8 AND LEN(HJ$)>0 THEN HJ$=LEFT$(HJ$,LEN(HJ$)-1):PRINT CHR$(29)+" "+CHR$(29);:GOTO 22160
  942. 22206  IF ASC(Y$)<48 OR ASC(Y$)>57 THEN 22160
  943. 22210  PRINT Y$;
  944. 22220  HJ$=HJ$+Y$:IF LEN(HJ$)>4 THEN IX=12
  945. 22230  RETURN
  946. 22240  IX=ASC(RIGHT$(Y$,1))
  947. 22250  Y$="
  948. 22260  IF IX<59 OR IX>81 THEN RETURN
  949. 22270  IX=IX-58
  950. 22280  IF IX<9 THEN RETURN
  951. 22290  IF IX=15 THEN IX=10:RETURN
  952. 22300  IF IX=21 THEN IX=9:RETURN
  953. 22310  IF IX=23 THEN IX=11:RETURN
  954. 22320  IX=0
  955. 22330  RETURN
  956. 22340  LOCATE 22,15:PRINT SPC(64);:LOCATE 22,15:PRINT TIME$;" ";:COLOR 0,7:PRINT " Reading Data, Wait a sec !!! ";:COLOR FGR,BGR,BDR:RETURN
  957. 22350  GOSUB 50340
  958. 22360  GOSUB 50340:LOCATE 24,5:PRINT"Are you satisfied with all changes ? (Y/N) or <Q)uit ";
  959. 22370  GOSUB 22380:ON AB GOTO 12190,18740,60360,22350
  960. 22380  LINE INPUT;HJ$
  961. 22390  IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 22470
  962. 22400  GOSUB 50654
  963. 22410  IF HJ$="NO" THEN AB=1:RETURN
  964. 22420  IF HJ$="N" THEN HJ$="NO":AB=1:RETURN
  965. 22430  IF HJ$="YES" THEN AB=2:RETURN
  966. 22440  IF HJ$="Y" THEN HJ$="YES":AB=2:RETURN
  967. 22450  IF HJ$="QUIT" THEN AB=3:RETURN
  968. 22460  IF HJ$="Q" THEN AB=3:RETURN
  969. 22470  AB=4:RETURN
  970. 22480  GOSUB 50340:LOCATE 24,5:PRINT"To which copy of RBBS-PC will these options apply (1 to 36)?";
  971. 22490  LINE INPUT;HJ$
  972. 22500  IF LEN(HJ$)<1 OR LEN(HJ$)>2 THEN GOTO 22480
  973. 22510  IF VAL(HJ$)<1 OR VAL(HJ$)>36 THEN GOTO 22480
  974. 22520  MID$(CA$,5,1)=MID$("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ",VAL(HJ$),1)
  975. 22530  RETURN
  976. 22560  GOSUB 50340:LOCATE 24,5:PRINT "Option "+HJ$+" unavailable when maintaining a public conference!";
  977. 22570  IA!=FNTI!+5:GOSUB 60440:RETURN
  978. 23000  CN=8
  979. 23010  GOSUB 24800:RB=0
  980. 23020  LOCATE  3,9:PRINT"141. Pack "+ME$+" file.
  981. 23030  LOCATE  4,9:PRINT"142. Rebuild "+UC$+" file.
  982. 23040  LOCATE  5,9:PRINT"143. Print "+ME$+" 'header' records.
  983. 23050  LOCATE  6,9:PRINT"144. Renumber messages in "+ME$+" file.
  984. 23055  LOCATE  7,9:PRINT"145. Repair messages in "+ME$+" file.
  985. 23056  LOCATE  8,9:PRINT"146. Initialize Hayes 2400 firmware for RBBS-PC.
  986. 23060  A$="Enter number of utility function, END to terminate, PgUp/PgDn to scroll.":GOSUB 24900
  987. 23070  GOSUB 22160
  988. 23080  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,21550,12190,23100
  989. 23090  GOTO 23070
  990. 23100  GOSUB 50340
  991. 23110  IF HJ$="141" THEN GOTO 23160
  992. 23120  IF HJ$="142" THEN IF F=2 THEN GOSUB 22560:GOTO 23000 ELSE D.FLAG=0:GOSUB 24110:GOTO 23000
  993. 23130  IF HJ$="143" THEN GOTO 23630
  994. 23140  IF HJ$="144" THEN GOTO 23740
  995. 23145  IF HJ$="145" THEN RB=1:GOTO 23630
  996. 23146  IF HJ$="146" THEN GOSUB 23731:GOTO 23000
  997. 23150  GOTO 23060
  998. 23160  B1=MC:B3!=IH:PURGE=-1:GOSUB 30610:GOTO 23000
  999. 23610  J!=LOC(1)+VAL(MID$(R$,118,6))
  1000. 23620  RETURN
  1001. 23630  GOSUB 30040              ' <----Print message headers
  1002. 23640  OPEN "R",1,ME$
  1003. 23650  FIELD 1,128 AS R$
  1004. 23660  J!=IJ
  1005. 23670  FOR I=IJ TO II-1
  1006. 23680    GET 1,J!
  1007. 23684    GOSUB 23610
  1008. 23686    I$="K":IF MID$(R$,116,1)=CHR$(225) THEN I$="A
  1009. 23715    IF LOC(1)>II-1 THEN GOTO 23730
  1010. 23717    PRINT LEFT$(R$,5)+" "+MID$(R$,76,25)+" "+MID$(R$,101,15)+" "+I$+" "+MID$(R$,118,6)+" "+STR$(LOC(1))+" " +STR$(J!):SK=VAL(MID$(R$,2,4))
  1011. 23720    IF RB AND VAL(MID$(R$,2,4))=IO THEN GOTO 23730
  1012. 23722    IF RB THEN GOSUB 50580
  1013. 23725  NEXT
  1014. 23730  GET 1,1:MID$(R$,1,8)=SPACE$(8):MID$(R$,1,8)=STR$(SK):PUT 1,1:CLOSE 1:IA!=FNTI!+5:GOSUB 60440:GOTO 23000
  1015. 23731  LOCATE 25,5:PRINT "Setting Hayes 2400 firmware switches for RBBS-PC on "+M13$;:IA!=FNTI!+3:GOSUB 60440
  1016. 23732  A$="AT&C1&D2S0=1B1E0":LOCATE 25,5:PRINT SPACE$(74);:LOCATE 25,5:PRINT "Prevent remote digitial loop back tests? ";:GOSUB 22380:ON AB GOTO 23734,23733,23732,23732
  1017. 23733  A$=A$+"&T5"
  1018. 23734  OPEN M13$+":2400,N,8,1,RS,CD,DS" AS #3: PRINT #3,"ATZ":IA!=FNTI!+3:GOSUB 60440:PRINT #3,A$+"&W":GOSUB 60440
  1019. 23735  CLOSE #3:LOCATE 25,5:PRINT SPACE$(74);:LOCATE 25,5:PRINT "Hayes 2400 firmware switches are now set for RBBS-PC on "+M13$;:IA!=FNTI!+3:GOSUB 60440:RETURN
  1020. 23740  GOSUB 30040
  1021. 23750  GOSUB 50340:LOCATE 24,5:PRINT"Renumber starting with OLD message # (<"+STR$(IO+1)+")";
  1022. 23760  LINE INPUT;HJ$
  1023. 23770  IF HJ$="" THEN GOTO 23000
  1024. 23780  B1=VAL(HJ$)
  1025. 23790  IF B1<1 OR B1>IO THEN GOTO 23750
  1026. 23800  RE=B1
  1027. 23810  GOSUB 50340:LOCATE 24,5:PRINT"Renumber starting with NEW message # ";
  1028. 23820  LINE INPUT;HJ$
  1029. 23830  IF HJ$="" THEN GOTO 23000
  1030. 23840  B1=VAL(HJ$)
  1031. 23850  IF B1<1 OR B1>9999 THEN GOTO 23810
  1032. 23860  NE=B1-1
  1033. 23870  OPEN "R",1,ME$
  1034. 23880  FIELD 1,128 AS R$
  1035. 23890  GOSUB 50340
  1036. 23900  J!=IJ
  1037. 23910  FOR I = IJ TO II-1
  1038. 23920    GET 1,J!
  1039. 23930    IF INSTR(R$,CHR$(225)) OR INSTR(R$,CHR$(226)) THEN GOSUB 24010:GOSUB 23610
  1040. 23940  NEXT
  1041. 23942  GET 1,1
  1042. 23944  MID$(R$,1,8)=SPACE$(8) ' Update the checkpoint record with the
  1043. 23946  MID$(R$,1,8)=STR$(NE)  ' 1- 8 = number of last message on system
  1044. 23947  PUT 1,1
  1045. 23950  CLOSE 1
  1046. 23980  IA!=FNTI!+1
  1047. 23990  GOSUB 60440
  1048. 24000  GOTO 23000
  1049. 24010  LOCATE 24,15
  1050. 24020  PRINT "Msg #"+MID$(R$,1,5);
  1051. 24030  IF VAL(MID$(R$,2,4))<RE THEN PRINT " read";:RETURN
  1052. 24040  Y$=MID$(R$,1,1)
  1053. 24045  MID$(R$,1,5)=SPACE$(5)
  1054. 24046  NE=NE+1
  1055. 24050  MID$(R$,1,5)=STR$(NE)
  1056. 24060  MID$(R$,1,1)=Y$
  1057. 24070  PRINT " renumbered as Msg #"+MID$(R$,1,5)
  1058. 24090  PUT 1,J!
  1059. 24100  RETURN
  1060. 24110  GOSUB 30040
  1061. 24119  OPEN "R",1,UC$,128
  1062. 24120  FIELD 1,31 AS O.N$,15 AS OG$,2 AS OH$,14 AS OI$,24 AS OJ$,19 AS OL$,14 AS OM$,3 AS OO$,2 AS OQ$,2 AS OS$,2 AS OT$
  1063. 24130  GOSUB 50350:A$=F$:GOSUB 50095:OPEN "R",2,A$,128
  1064. 24140  FIELD 2,31 AS N$,15 AS PW$,2 AS SL$,14 AS OP$,24 AS CS$,19 AS MA$,14 AS TD$,3 AS LND$,2 AS UDL$,2 AS UUL$,2 AS ET$
  1065. 24150  NOW=VAL(LEFT$(DATE$,2))
  1066. 24180  GOSUB 50340:A!=0:GOSUB 50840
  1067. 24190  A!=IG:IE=1
  1068. 24200  FOR J = 1 TO A!
  1069. 24210    GET 1
  1070. 24220    IF ASC(O.N$)=0 OR MID$(O.N$,1,7)="NEWUSER" OR MID$(O.N$,1,7)="       " THEN A$="":GOTO 24430
  1071. 24225    IF D.FLAG THEN 24290
  1072. 24230    OF=CVI(OH$)
  1073. 24240    IF OF=>PC THEN 24290      ' copy users exempt from purges
  1074. 24250    IF OF<=ML THEN 24290      ' copy "locked-out" users
  1075. 24260    OU=VAL(LEFT$(OM$,2))
  1076. 24270    LQ=NOW-OU
  1077. 24280    IF LQ<0 THEN LQ=LQ+12
  1078. 24285    IF LQ>LA THEN A$="(Last on "+OM$+")":GOTO 24430 'Purge inactive users
  1079. 24290    PRINT STR$(LOC(1))+": "+O.N$+" copied .... ";
  1080. 24300    GOSUB 50720:GOTO 24450
  1081. 24430    PRINT STR$(LOC(1))+": "+O.N$+"        purged... "+A$
  1082. 24450  NEXT
  1083. 24650  CLOSE 1,2
  1084. 24660  UB=IG
  1085. 24670  GOSUB 30450
  1086. 24730  GOSUB 50340:LOCATE 24,5:PRINT"Delete the old "+UC$+" file? (YES or NO)?";
  1087. 24740  GOSUB 22380:ON AB GOTO 24750,24770,24730,24730
  1088. 24750  A$=UC$:GOSUB 50096:NAME UC$ AS A$
  1089. 24760  GOTO 24780
  1090. 24770  KILL UC$
  1091. 24780  GOSUB 50350:A$=F$:GOSUB 50095:NAME A$ AS UC$
  1092. 24790  RETURN
  1093. 24800  CLS
  1094. 24810  I!=FRE(C$)
  1095. 24820  COLOR 0,7,0
  1096. 24830  LOCATE 1,10
  1097. 24840  PRINT"RBBS-PC CPC12.5 Default Configuration "+VER$;:IF F THEN GOSUB 24970
  1098. 24850  COLOR FGR,BGR,BDR
  1099. 24860  LOCATE 1,68
  1100. 24870  PRINT"Page "+STR$(CN)+" of "+STR$(MB)
  1101. 24880  RETURN
  1102. 24890  A$="Enter parameter number to change, END to update, PgUp/PgDn to scroll.
  1103. 24900  LOCATE 24,1
  1104. 24910  PRINT A$;
  1105. 24920  PRINT STRING$((79-LEN(A$)),32);
  1106. 24930  LOCATE 24,LEN(A$)+1
  1107. 24940  COLOR FGR,BGR,BDR:HJ$="
  1108. 24950  I!=FRE(C$)
  1109. 24960  RETURN
  1110. 24970  LOCATE 2,10:A$="Private":IF F=2 THEN A$="Public"
  1111. 24980  COLOR 31,0,0:PRINT "("+A$+" Conference Maintenance Mode for "+MID$(ME$,1,INSTR(ME$,"M.DEF")-1)+")":COLOR FGR,BGR,BDR:RETURN
  1112. 25020  LOCATE 24,5:PRINT A$" record"+STR$(LOC(2))+" of "+UC$+" file.";:RETURN
  1113. 25030  IF PURGE THEN RETURN ELSE LOCATE 24,5:PRINT A$" record"+STR$(LOC(2))+" of "+ME$+" file.";:RETURN
  1114. 25040  GOSUB 50340
  1115. 25041  IF F=0 THEN GOTO 25050
  1116. 25042  LOCATE 24,5:PRINT"End conference maintenance? (YES or NO)";
  1117. 25043  GOSUB 22380:ON AB GOTO 25050,25044,25142,25142
  1118. 25044  ME$=MAINMSG$
  1119. 25045  UC$=MAINUSR$
  1120. 25046  GOTO 12151
  1121. 25050  LOCATE 24,5:PRINT "Enter the name of the conference (seven characters or less) ";
  1122. 25060  LINE INPUT;HJ$
  1123. 25070  IF LEN(HJ$)<1 OR LEN(HJ$)>7 THEN GOTO 25040
  1124. 25075  GOSUB 50654:CP$=HJ$
  1125. 25080  GOSUB 50340
  1126. 25090  LOCATE 24,5:PRINT "Specify drive (A->"+M$+") containing this conference's files. ";
  1127. 25100  LINE INPUT;HJ$
  1128. 25110  IF LEN(HJ$)<>1 THEN GOTO 25080
  1129. 25112  GOSUB 50654
  1130. 25114  IF HJ$<"A" OR HJ$>M$ THEN GOTO 25090
  1131. 25120  CP$=HJ$+":"+CP$
  1132. 25140  ME$=CP$+"M.DEF
  1133. 25141  GOSUB 50340
  1134. 25142  LOCATE 24,5:PRINT"Is this a private conference? (YES or NO)";
  1135. 25143  GOSUB 22380:ON AB GOTO 25144,25160,25141,25141
  1136. 25144  F=2:GOTO 12160
  1137. 25160  F=1:UC$=CP$+"U.DEF":GOTO 12160
  1138. 25180  CLS:I!=FRE(C$):COLOR 0,7,0:LOCATE 1,23:PRINT"RBBS-PC CPC12.5 Default Configuration";:COLOR FGR,BGR,BDR
  1139. 25190  LOCATE  2,5:PRINT"The RBBS-PC "+CO$+" Commands are as follows:
  1140. 25200  LOCATE   3,8:PRINT"Command                       Security Level":RETURN
  1141. 25210  LOCATE 24,5:PRINT"Enter first character of command (CR to end)";:LINE INPUT;X$:IF X$="" THEN RETURN 16910 ELSE RETURN
  1142. 30000  OK=0                      ' <---- check to see if file exists
  1143. 30010  NAME FILE$ AS FILE$       '   OK=0 means file not found
  1144. 30020  OK=-1                     '   OK=1 means file exists
  1145. 30030  RETURN
  1146. 30040  OPEN "R",2,ME$,128        ' <---- read MESSAGES checkpoint record
  1147. 30050  FIELD 2,128 AS RR$
  1148. 30060  GET 2,1
  1149. 30090  IO=VAL(MID$(RR$,1,8))     '  1-  8 = number of last message on system
  1150. 30100  ID=VAL(MID$(RR$,52,5))    ' 52- 56 = first rec. of user file
  1151. 30110  IE=VAL(MID$(RR$,57,5))    ' 57- 61 = next avail. user record
  1152. 30120  IG=VAL(MID$(RR$,62,5))    ' 62- 66 = last rec. of user file
  1153. 30130  IJ=VAL(MID$(RR$,68,7))    ' 68- 74 = first rec. of msgs file
  1154. 30140  II=VAL(MID$(RR$,75,7))    ' 75- 81 = next avail. msgs record
  1155. 30150  IH=VAL(MID$(RR$,82,7))    ' 82- 88 = last rec. of msgs file
  1156. 30152  IM=VAL(MID$(RR$,89,7))    ' 89- 95 = maximum number of messages
  1157. 30155  MC=VAL(MID$(RR$,127,2))   '127-128 = maximum number of "nodes"
  1158. 30160  CLOSE 2
  1159. 30170  RETURN
  1160. 30180  OPEN "R",2,FILE$,128      ' <---- get length of file
  1161. 30190  FIELD 2,128 AS RR$
  1162. 30200  UG=LOF(2)/128
  1163. 30210  CLOSE 2
  1164. 30220  RETURN
  1165. 30230  OPEN "R",2,ME$            ' <---- create new MESSAGES file
  1166. 30240  FIELD 2,128 AS RR$
  1167. 30245  A$="Creating preformatted"
  1168. 30270  LSET RR$=" 1"+SPACE$(124)+STR$(MC)
  1169. 30280  PUT 2,1                   ' write out blank checkpoint record
  1170. 30290  FOR J=2 TO IJ-1
  1171. 30300    GOSUB 31050
  1172. 30310    PUT 2                   ' write out "door" records of new file
  1173. 30320    GOSUB 25030
  1174. 30330  NEXT
  1175. 30370  FOR J=IJ TO IH
  1176. 30380    LSET RR$ = SPACE$(128)
  1177. 30390    PUT 2                   ' write out messages records of new file
  1178. 30400    GOSUB 25030
  1179. 30410  NEXT
  1180. 30420  IH=LOC(2)                 ' point to last available message record
  1181. 30425  CLOSE 2
  1182. 30430  GOSUB 30450
  1183. 30440  RETURN
  1184. 30450  CLOSE 2
  1185. 30455  OPEN "R",2,ME$            ' <---- update MESSAGES checkpoint record
  1186. 30460  FIELD 2,128 AS RR$
  1187. 30470  GET 2,1
  1188. 30490  MID$(RR$,52,46)=SPACE$(46)   'reset all counters before filling
  1189. 30500  MID$(RR$,52,5)=STR$(ID)   ' 52- 56 = first rec. of msgs file
  1190. 30510  MID$(RR$,57,5)=STR$(IE)   ' 57- 61 = next avail. user record
  1191. 30520  MID$(RR$,62,5)=STR$(IG)   ' 62- 66 = last rec. of user file
  1192. 30540  MID$(RR$,68,7)=STR$(IJ)   ' 68- 74 = first rec. of msgs file
  1193. 30550  MID$(RR$,75,7)=STR$(II)   ' 75- 81 = next avail. msgs record
  1194. 30560  MID$(RR$,82,7)=STR$(IH)   ' 82- 88 = last rec. of msgs file
  1195. 30562  MID$(RR$,89,7)=STR$(IM)   ' 89- 95 = maximum number of messages
  1196. 30565  HJ$=STR$(MC):IF MC>9 THEN HJ$=MID$(STR$(MC),2,2)
  1197. 30570  MID$(RR$,127,2)=HJ$       '127-128 = maximum number of "nodes"
  1198. 30580  PUT 2,1
  1199. 30590  CLOSE 2
  1200. 30600  RETURN
  1201. 30610  CLOSE 1
  1202. 30612  CLOSE 2
  1203. 30613  OPEN "R",1,ME$,128        ' <---- adjust size of the MESSAGES file
  1204. 30614  FIELD 1,128 AS R$         ' Open old MESSAGES file
  1205. 30615  A$=ME$:GOSUB 50095
  1206. 30616  OPEN "R",2,A$,128         ' Open new MESSAGES file
  1207. 30620  FIELD 2,128 AS RR$
  1208. 30635  A$="Copying"
  1209. 30640  OE=B1:IF MC<=B1 THEN OE=MC
  1210. 30650  GOSUB 50340
  1211. 30660  FOR J=1 TO OE+1
  1212. 30670    GET 1,J
  1213. 30680    LSET RR$=R$              ' write out existing checkpoint and
  1214. 30690    PUT 2                    ' existing "door" records
  1215. 30700    GOSUB 25030
  1216. 30710  NEXT
  1217. 30720  IF B1<=MC THEN GOTO 30780
  1218. 30730  FOR J = OE+1 TO B1
  1219. 30740    GOSUB 31050
  1220. 30750    PUT 2                    ' write out expansion "door" records
  1221. 30760    GOSUB 25030
  1222. 30770  NEXT
  1223. 30780  MC=B1                      ' set value for maximum number of nodes
  1224. 30820  FOR J=IJ TO II-1
  1225. 30830    GET 1,J
  1226. 30831    IF NOT PURGE THEN GOTO 30840
  1227. 30832    IF MID$(R$,116,1)=CHR$(225) THEN PRINT"Msg #"+LEFT$(R$,5)+" copied...":GOTO 30840
  1228. 30833    IF MID$(R$,116,1)=CHR$(226) THEN PRINT"Msg #"+LEFT$(R$,5)+"          purged...":J=LOC(1)+VAL(MID$(R$,118,6)):GOTO 30830
  1229. 30840    LSET RR$=R$
  1230. 30850    PUT 2                    ' write out existing message records
  1231. 30860    GOSUB 25030
  1232. 30870  NEXT
  1233. 30875  B1=LOC(2)+1                ' get new file's next message record
  1234. 30880  CLOSE 1
  1235. 30900  IF B3!<LOC(2)+1 THEN GOTO 30960
  1236. 30905  IF PURGE THEN II=LOC(2)+1:PURGE=0:A$="Preformatting"
  1237. 30910  FOR J!=II TO B3!
  1238. 30920    LSET RR$ = SPACE$(128)
  1239. 30930    PUT 2                    ' write out expansion message records
  1240. 30940    GOSUB 25030
  1241. 30950  NEXT
  1242. 30960  IJ=1+MC+1:II=B1:IH=LOC(2):CLOSE 2
  1243. 30980  GOSUB 50340:LOCATE 24,5:PRINT"Delete the old "+ME$+" file? (YES or NO)?";
  1244. 30990  GOSUB 22380:ON AB GOTO 31000,31020,30980,30980
  1245. 31000  A$=ME$:GOSUB 50096:NAME ME$ AS A$
  1246. 31010  GOTO 31030
  1247. 31020  KILL ME$
  1248. 31030  A$=ME$:GOSUB 50095:NAME A$ AS ME$
  1249. 31035  GOSUB 30450
  1250. 31040  RETURN
  1251. 31050  LSET RR$=SPACE$(31)+"-1 0 0 0 0 0 0 0    0 0 0I":RETURN
  1252. 50000  OPEN "R",2,UC$            ' <---- create a new USERS file
  1253. 50010  FIELD 2,128 AS U$
  1254. 50015  GOSUB 50340
  1255. 50016  A$="Creating preformatted"
  1256. 50020  FOR J=ID TO IG
  1257. 50030    LSET U$ = SPACE$(128)
  1258. 50040    PUT 2
  1259. 50050    GOSUB 25020
  1260. 50060  NEXT
  1261. 50080  CLOSE 2
  1262. 50090  RETURN
  1263. 50095  IF INSTR(A$,".") THEN A$=MID$(A$,1,INSTR(A$,".")-1)+".BAK":RETURN ELSE A$=A$+".BAK":RETURN
  1264. 50096  IF INSTR(A$,".") THEN A$=MID$(A$,1,INSTR(A$,".")-1)+".OLD":RETURN ELSE A$=A$+".OLD":RETURN
  1265. 50100  OPEN "R",2,ME$
  1266. 50110  FIELD 2,128 AS RR$
  1267. 50114  IF F=1 THEN IO=1
  1268. 50115  GOSUB 50340
  1269. 50120  LSET RR$=" 1      "+SPACE$(118)+STR$(MC)
  1270. 50130  PUT 2,1                       ' write out first record of new file
  1271. 50140  FOR J!=2 TO MC+1
  1272. 50150    GOSUB 31050
  1273. 50160    PUT 2                       ' write out "door" records of new file
  1274. 50170    GOSUB 25030
  1275. 50180  NEXT
  1276. 50190  IJ=LOC(2)+1                ' point to first message record
  1277. 50200  II=IJ                   ' point to next available message record
  1278. 50210  IF MC+1=MQ! THEN GOTO 50270
  1279. 50220  FOR J!=MC+2 TO MQ!
  1280. 50230    LSET RR$ = SPACE$(128)
  1281. 50240    PUT 2                       ' write out messages records of new file
  1282. 50250    GOSUB 25030
  1283. 50260  NEXT
  1284. 50270  IH=LOC(2)                  ' point to last available message record
  1285. 50280  GOSUB 30040
  1286. 50290  RETURN
  1287. 50340  I!=FRE(C$):LOCATE 24,1:PRINT STRING$(79,32);:RETURN
  1288. 50350  F$=UC$
  1289. 50360  IF INSTR(UC$,".") THEN F$=MID$(UC$,1,INSTR(UC$,".")-1)
  1290. 50370  RETURN
  1291. 50480  UB=8
  1292. 50490  NAME UC$ AS UC$
  1293. 50500  OPEN "R",1,UC$
  1294. 50510  IF UB<LOF(1)/128 THEN UB=LOF(1)/128
  1295. 50520  UG=LOF(1)/128:CLOSE 1:RETURN
  1296. 50530  MQ!=(5*MP)+1+MC
  1297. 50540  NAME ME$ AS ME$
  1298. 50550  OPEN "R",1,ME$
  1299. 50560  IF MQ!<LOF(1)/128 THEN MQ!=LOF(1)/128
  1300. 50570  CLOSE 1:RETURN
  1301. 50580  OLD=LOC(1):GET 1,J!
  1302. 50590  IF (MID$(R$,116,1)=CHR$(225) OR MID$(R$,116,1)=CHR$(226)) AND (MID$(R$,61,1)=":" AND MID$(R$,64,1)=":" AND MID$(R$,70,1)="-" AND MID$(R$,73,1)="-") THEN RETURN
  1303. 50600  PRINT "Message chain broken at record number "+STR$(OLD)
  1304. 50610  PRINT "Message chain repair in progress!
  1305. 50620  FOR IQ=OLD+1 TO II-1
  1306. 50630    GET 1,IQ
  1307. 50640    IF (MID$(R$,116,1)=CHR$(225) OR MID$(R$,116,1)=CHR$(226)) AND (MID$(R$,61,1)=":" AND MID$(R$,64,1)=":" AND MID$(R$,70,1)="-" AND MID$(R$,73,1)="-") THEN GOTO 50660
  1308. 50645  NEXT
  1309. 50650  GOTO 23730
  1310. 50654  ' Convert Lower Case to Upper Case -------
  1311. 50655  FOR Z=1 TO LEN(HJ$):MID$(HJ$,Z,1)=CHR$(ASC(MID$(HJ$,Z,1))+32*(ASC(MID$(HJ$,Z,1))>96)):NEXT:RETURN
  1312. 50660  GET 1,OLD
  1313. 50670  MID$(R$,118,6)=STR$(IQ-OLD)
  1314. 50680  PUT 1,OLD
  1315. 50690  PRINT "Message chain repaired.
  1316. 50700  J!=IQ
  1317. 50710  RETURN
  1318. 50720    JX=30:WHILE MID$(O.N$,JX,1)=" ":JX=JX-1:WEND:X$=MID$(O.N$,1,JX)
  1319. 50721    UIX#=FNHSH(X$):Q=FNHSH2(X$):NSR=1:RO=CSRLIN:CO=POS(0)
  1320. 50722    GET 2,UIX#
  1321. 50724    IF MID$(N$,1,7)="       " THEN 50730
  1322. 50726    UIX#=UIX#+Q:IF UIX#>UB THEN UIX#=UIX#-UB
  1323. 50728    NSR=NSR+1:LOCATE RO,CO:PRINT "searching";UIX#;:GOTO 50722
  1324. 50730  LSET N$=O.N$:LSET PW$=OG$:LSET SL$=OH$:LSET OP$=OI$:LSET CS$=OJ$:LSET MA$=OL$:LSET TD$=OM$:LSET LND$=OO$:LSET UDL$=OQ$:LSET UUL$=OS$:LSET ET$=OT$
  1325. 50820    PUT 2,UIX#:IE=IE+1:LOCATE RO,CO:PRINT "to pos#";UIX#;" /";NSR;" srch(s)"
  1326. 50830    RETURN
  1327. 50840  FOR J=A!+1 TO UB
  1328. 50850    LSET N$   = SPACE$(31):LSET PW$  = SPACE$(15):LSET SL$  = MKI$(-32000):LSET OP$  = SPACE$(14):LSET CS$  = SPACE$(24):LSET MA$  = SPACE$(19)
  1329. 50910    LSET TD$  = SPACE$(14):LSET LND$ = SPACE$(3):LSET UDL$ = SPACE$(2):LSET UUL$ = SPACE$(2):LSET ET$  = SPACE$(2)
  1330. 50970    PUT 2:GOSUB 25020
  1331. 50980  NEXT:RETURN
  1332. 60000  REM
  1333. 60010  REM * HANDLE ERROR CONDITIONS *
  1334. 60020  ' PRINT ERR,ERL:STOP
  1335. 60030  IF ERR=53 AND ERL=30010 THEN RESUME 30030
  1336. 60031  IF ERR=58 AND ERL=30010 THEN RESUME 30020
  1337. 60040  IF ERR=62 AND (ERL=11600 OR ERL=11620 OR ERL=11640) THEN PRINT CA$+" from a version earlier than CPC12.5 on default drive.":PRINT "Please delete and rerun CONFIG.":RESUME 60340
  1338. 60140  IF ERL=31000 AND ERR=58 THEN KILL A$:RESUME 31000
  1339. 60150  IF ERL=31030 AND ERR=58 THEN KILL A$:RESUME 31030
  1340. 60170  IF ERL=22120 AND ERR=6 THEN RESUME 22100
  1341. 60270  IF ERL=24750 AND ERR=58 THEN KILL A$:RESUME 24750
  1342. 60278  IF ERL=50490 AND ERR=58 THEN RESUME 50500
  1343. 60280  IF ERL=50540 AND ERR=58 THEN RESUME 50550
  1344. 60282  IF ERL=50490 OR ERL=50540 THEN RESUME 13740
  1345. 60285  IF ERR=61 THEN PRINT "ERROR - IBM DOS DISKETTE FULL ":RESUME 60340
  1346. 60290  IF ERR=67 THEN PRINT "ERROR - IBM DOS DIRECTORY FULL":RESUME 60340
  1347. 60300  IF ERR=70 THEN PRINT "DISKETTE IN DRIVE IS WRITE PROTECTED":RESUME 60340
  1348. 60310  IF ERR=71 THEN PRINT "DRIVE DOOR OPEN OR MISSING DISKETTE":RESUME 60340
  1349. 60320  IF ERR=72 THEN PRINT "ERROR - UNFORMATTED IBM DOS DISKETTE IN DRIVE":RESUME 60340
  1350. 60330  PRINT "+++ Error";ERR;" in line ";ERL "occurred at " TIME$ " on " DATE$:STOP
  1351. 60340  IF F=1 THEN GOSUB 10540:IA!=FNTI!+5
  1352. 60350  GOSUB 60440
  1353. 60360  SYSTEM
  1354. 60370  PRINT "Unable to create preformatted "+UC$+" file.":GOTO 60340
  1355. 60380  FOR I=1 TO 3:SOUND 1000*I,1:NEXT:RETURN
  1356. 60440  ' wait routine
  1357. 60450  IF FNTI!<IA! THEN GOTO 60450
  1358. 60460  RETURN
  1359.